@@ -634,8 +634,8 @@ __CPROVER_HIDE:;
634634#else
635635 __CPROVER_precondition (
636636 __CPROVER_POINTER_OBJECT (dst ) != __CPROVER_POINTER_OBJECT (src ) ||
637- ((const char * )src >= (const char * )dst + n ) ||
638- ((const char * )dst >= (const char * )src + n ),
637+ ((const unsigned char * )src >= (const unsigned char * )dst + n ) ||
638+ ((const unsigned char * )dst >= (const unsigned char * )src + n ),
639639 "memcpy src/dst overlap" );
640640 __CPROVER_precondition (
641641 __CPROVER_r_ok (src , n ), "memcpy source region readable" );
@@ -644,10 +644,11 @@ __CPROVER_HIDE:;
644644
645645 if (n > 0 )
646646 {
647- //for(__CPROVER_size_t i=0; i<n ; i++) ((char *)dst)[i]=((const char *)src)[i];
648- char src_n [n ];
649- __CPROVER_array_copy (src_n , (char * )src );
650- __CPROVER_array_replace ((char * )dst , src_n );
647+ //for(__CPROVER_size_t i=0; i<n ; i++)
648+ // ((unsigned char *)dst)[i]=((const unsigned char *)src)[i];
649+ unsigned char src_n [n ];
650+ __CPROVER_array_copy (src_n , (unsigned char * )src );
651+ __CPROVER_array_replace ((unsigned char * )dst , src_n );
651652 }
652653#endif
653654
@@ -681,8 +682,8 @@ void *__builtin___memcpy_chk(void *dst, const void *src, __CPROVER_size_t n, __C
681682#else
682683 __CPROVER_precondition (
683684 __CPROVER_POINTER_OBJECT (dst ) != __CPROVER_POINTER_OBJECT (src ) ||
684- ((const char * )src >= (const char * )dst + n ) ||
685- ((const char * )dst >= (const char * )src + n ),
685+ ((const unsigned char * )src >= (const unsigned char * )dst + n ) ||
686+ ((const unsigned char * )dst >= (const unsigned char * )src + n ),
686687 "memcpy src/dst overlap" );
687688 __CPROVER_precondition (
688689 __CPROVER_r_ok (src , n ), "memcpy source region readable" );
@@ -692,10 +693,11 @@ void *__builtin___memcpy_chk(void *dst, const void *src, __CPROVER_size_t n, __C
692693
693694 if (n > 0 )
694695 {
695- //for(__CPROVER_size_t i=0; i<n ; i++) ((char *)dst)[i]=((const char *)src)[i];
696- char src_n [n ];
697- __CPROVER_array_copy (src_n , (char * )src );
698- __CPROVER_array_replace ((char * )dst , src_n );
696+ //for(__CPROVER_size_t i=0; i<n ; i++)
697+ // ((unsigned char *)dst)[i]=((const unsigned char *)src)[i];
698+ unsigned char src_n [n ];
699+ __CPROVER_array_copy (src_n , (unsigned char * )src );
700+ __CPROVER_array_replace ((unsigned char * )dst , src_n );
699701 }
700702#endif
701703 return dst ;
@@ -857,9 +859,9 @@ void *memmove(void *dest, const void *src, size_t n)
857859
858860 if (n > 0 )
859861 {
860- char src_n [n ];
861- __CPROVER_array_copy (src_n , (char * )src );
862- __CPROVER_array_replace ((char * )dest , src_n );
862+ unsigned char src_n [n ];
863+ __CPROVER_array_copy (src_n , (unsigned char * )src );
864+ __CPROVER_array_replace ((unsigned char * )dest , src_n );
863865 }
864866 #endif
865867 return dest ;
@@ -903,9 +905,9 @@ void *__builtin___memmove_chk(void *dest, const void *src, size_t n, __CPROVER_s
903905
904906 if (n > 0 )
905907 {
906- char src_n [n ];
907- __CPROVER_array_copy (src_n , (char * )src );
908- __CPROVER_array_replace ((char * )dest , src_n );
908+ unsigned char src_n [n ];
909+ __CPROVER_array_copy (src_n , (unsigned char * )src );
910+ __CPROVER_array_replace ((unsigned char * )dest , src_n );
909911 }
910912 #endif
911913 return dest ;
0 commit comments