compiler: avoid barfing when config.h & the current -std= mode mismatch
authorCody P Schafer <dev@codyps.com>
Sat, 21 Jun 2014 00:46:01 +0000 (20:46 -0400)
committerRusty Russell <rusty@rustcorp.com.au>
Sat, 21 Jun 2014 04:47:46 +0000 (14:17 +0930)
Add a bunch of __ for all the attribute members.

Lets us keep working even if configurator is called with different
CFLAGS than the build of a file which includes compiler.h

Idealy, we (people using ccan) wouldn't let this happen, however I don't
see any reason /not/ to avoid build breakage in the above case.

Long term, it might make sense to plug some logic into configurator's
config.h (or a cc wrapper, so something else) to warn when the current
flags don't look the same as the ones used to generate config.h

CC: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Cody P Schafer <dev@codyps.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/compiler/compiler.h

index 42245646c42ff772bcc6376ffc54ac79a1c1aca1..bce4f25a122612d7f26f8e846564747a01836b3b 100644 (file)
@@ -17,7 +17,7 @@
  *     fprintf(stderr, "Error: %s (%s)\n", reason, strerror(errno));
  * }
  */
-#define COLD __attribute__((cold))
+#define COLD __attribute__((__cold__))
 #else
 #define COLD
 #endif
@@ -37,7 +37,7 @@
  *     exit(1);
  * }
  */
-#define NORETURN __attribute__((noreturn))
+#define NORETURN __attribute__((__noreturn__))
 #else
 #define NORETURN
 #endif
@@ -71,7 +71,7 @@
  * same value for the exact same arguments.  This implies that the function
  * must not use global variables, or dereference pointer arguments.
  */
-#define CONST_FUNCTION __attribute__((const))
+#define CONST_FUNCTION __attribute__((__const__))
 #else
 #define CONST_FUNCTION
 #endif
  *     counter += add;
  * }
  */
-#define UNNEEDED __attribute__((unused))
+#define UNNEEDED __attribute__((__unused__))
 #endif
 
 #ifndef NEEDED
  *             printf("Counter is %i\n", counter);
  *     }
  */
-#define NEEDED __attribute__((used))
+#define NEEDED __attribute__((__used__))
 #else
 /* Before used, unused functions and vars were always emitted. */
-#define NEEDED __attribute__((unused))
+#define NEEDED __attribute__((__unused__))
 #endif
 #endif
 
  *             return 0;
  *     }
  */
-#define UNUSED __attribute__((unused))
+#define UNUSED __attribute__((__unused__))
 #endif
 #else
 #ifndef UNNEEDED
  *     return realloc(buf, (*size) *= 2);
  * }
  */
-#define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
 #else
 #define WARN_UNUSED_RESULT
 #endif