view gcc/testsuite/gcc.dg/cpp/tr-warn2.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* K+R rejects use of function-like macros in non-function context.
   ANSI C explicitly permits this (the macro is not expanded).

   We should not warn about this during pre-expansion of arguments,
   since traditional preprocessors don't do pre-expansion, and we get
   the warning anyway during the re-scan pass if and only if it is
   appropriate.  */

/* { dg-do preprocess } */
/* { dg-options -Wtraditional } */

#define f(x) x
#define g(x) x / 2
#define h(a, b) a(b)
f(g) (3)	    /* { dg-bogus "must be used with arguments" } */
f 2		    /* { dg-warning "must be used with arguments" } */
f(g) 3		    /* { dg-warning "must be used with arguments" } */
h(f, 3)		    /* { dg-bogus "must be used with arguments" } */