c++cgcccompiler-warningsgcc-pedantic

Will -Wpedantic do anything when compiling with a non-extension -std?


If I compile my C or C++ code with GCC, using -std=c99 or -std=c++11 or some other proper ISO standard rather than a GNU extension - will -Wpedantic issue more warnings that I would usually get? e.g. With -W, -Wall or -Wall -Wextra?


Solution

  • Yes, using -pedantic makes GCC stricter. In GCC 8.2, int foo(void) { return ({3;}); } compiles without complaint using just -Wall -std=c11 but gets this warning with -pedantic added:

    warning: ISO C forbids braced-groups within expressions [-Wpedantic]

    (The feature used, statement expressions, is intended for use in macros. It is used in my example solely as proof-of-principle.)

    Comparing and contrasting:

    The documentation also suggests GCC may be lax about certain warnings it should issue with standard C, and -pedantic causes it to issue all warnings required by strict ISO C.

    There may be additional variations; I am not an expert on GCC dialects and switches.