bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AC_C_CONST fails with -Werror


From: Shevek
Subject: AC_C_CONST fails with -Werror
Date: Thu, 06 Nov 2008 14:29:17 +0000

Hi,

If CFLAGS includes -Werror, AC_C_CONST fails because the sample file
fails to initialize some variables before use, generating warnings.

The problem is relatively simple to fix, just set some appropriate
things to 0:

configure:22157: checking for an ANSI C-conforming const
configure:22232: gcc -c -Werror -Wall -g -O1 -Wall  conftest.c >&5
cc1: warnings being treated as errors
conftest.c: In function 'main':
conftest.c:81: warning: 't' is used uninitialized in this function
conftest.c:97: warning: 'b' is used uninitialized in this function
conftest.c:103: warning: 'cs[0]' is used uninitialized in this function

| int
| main ()
| {
| /* FIXME: Include the comments suggested by Paul. */
| #ifndef __cplusplus
|   /* Ultrix mips cc rejects this.  */
|   typedef int charset[2];
|   const charset cs;
|   /* SunOS 4.1.1 cc rejects this.  */
|   char const *const *pcpcc;
|   char **ppc;
|   /* NEC SVR4.0.2 mips cc rejects this.  */
|   struct point {int x, y;};
|   static struct point const zero = {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";
|   pcpcc = &g + (g ? g-g : 0);
|   /* HPUX 7.0 cc rejects these. */
|   ++pcpcc;
|   ppc = (char**) pcpcc;
|   pcpcc = (char const *const *) ppc;
|   { /* SCO 3.2v4 cc rejects this.  */
|     char *t;
|     char const *s = 0 ? (char *) 0 : (char const *) 0;
| 
|     *t++ = 0;
|     if (s) return 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. */
|     typedef const int *iptr;
|     iptr p = 0;
|     ++p;
|   }
|   { /* 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;
|     if (!foo) return 0;
|   }
|   return !cs[0] && !zero.x;
| #endif
| 
|   ;
|   return 0;
| }

Thank you.

S.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]