-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This patch allows: ./testsuite -d -k 'C keywords' CFLAGS='-Wall -Werror' to succeed with gcc 3.4.4. There were so many tests in AC_C_CONST, some with duplicate names but different scopes, that I relettered the local variables.
2006-04-07 Eric Blake <[EMAIL PROTECTED]> * lib/autoconf/c.m4 (AC_C_CONST, AC_C_VOLATILE): Avoid warnings from gcc. - -- Life is short - so eat dessert first! Eric Blake [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFENlyb84KuGfSFAYARAt97AJ9Gi9YA+s9sEDrJlQza6B7aIDrJcQCgoxpZ ysrD7Hs36C4OW1qnrfaICAE= =YTMM -----END PGP SIGNATURE-----
Index: lib/autoconf/c.m4 =================================================================== RCS file: /sources/autoconf/autoconf/lib/autoconf/c.m4,v retrieving revision 1.220 diff -u -p -r1.220 c.m4 --- lib/autoconf/c.m4 6 Apr 2006 11:24:00 -0000 1.220 +++ lib/autoconf/c.m4 7 Apr 2006 12:31:32 -0000 @@ -1439,47 +1439,43 @@ AC_DEFUN([AC_C_CONST], #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; - const charset x; + const charset a; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; - static struct point const zero = {0,0}; + static struct point const b = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); + const char *c = "string"; + ccp = &c + (c ? c-c : 0); /* HPUX 7.0 cc rejects these. */ ++ccp; p = (char**) ccp; ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + /* SCO 3.2v4 cc rejects this. */ + char *d; + char const *e = 0 ? (char *) 0 : (char const *) 0; + *d++ = 0; + /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int f[] = {25, 17}; + const int *g = &f[0]; + ++g; + /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying + iptr h = 0; + ++h; + /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } + struct s *i; i->j = 5; + /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int j = 10; + /* Refer to all variables to avoid compiler warnings. */ + return !a[0] && !b.x && !c && !d && !e && !f && !g && !h && !i->j && !j; #endif ]])], [ac_cv_c_const=yes], @@ -1546,8 +1542,9 @@ AN_IDENTIFIER([volatile], [AC_C_VOLATILE AC_DEFUN([AC_C_VOLATILE], [AC_CACHE_CHECK([for working volatile], ac_cv_c_volatile, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ -volatile int x; -int * volatile y;])], +volatile int x = 0; +int * volatile y = (int *) 0; +return !x && !y;])], [ac_cv_c_volatile=yes], [ac_cv_c_volatile=no])]) if test $ac_cv_c_volatile = no; then