modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memcmp.c (about) 1 /* Copyright (C) 2001 Free Software Foundation. 2 3 Ensure that short builtin memcmp are optimized and perform correctly. 4 On architectures with a cmpstrsi instruction, this test doesn't determine 5 which optimization is being performed, but it does check for correctness. 6 7 Written by Roger Sayle, 12/02/2001. 8 Additional tests by Roger Sayle after PR 3508, 12/26/2001. */ 9 10 extern void abort (void); 11 typedef __SIZE_TYPE__ size_t; 12 extern int memcmp (const void *, const void *, size_t); 13 extern char *strcpy (char *, const char *); 14 extern void link_error (void); 15 16 void 17 main_test (void) 18 { 19 char str[8]; 20 21 strcpy (str, "3141"); 22 23 if ( memcmp (str, str+2, 0) != 0 ) 24 abort (); 25 if ( memcmp (str+1, str+3, 0) != 0 ) 26 abort (); 27 28 if ( memcmp (str+1, str+3, 1) != 0 ) 29 abort (); 30 if ( memcmp (str, str+2, 1) >= 0 ) 31 abort (); 32 if ( memcmp (str+2, str, 1) <= 0 ) 33 abort (); 34 35 if (memcmp ("abcd", "efgh", 4) >= 0) 36 link_error (); 37 if (memcmp ("abcd", "abcd", 4) != 0) 38 link_error (); 39 if (memcmp ("efgh", "abcd", 4) <= 0) 40 link_error (); 41 }