6.7.4.2.21 -Wtraditional

Warn about certain constructs that behave differently in traditional and ANSI C/C++.

  • Macro arguments occurring within string constants in the macro body. These would substitute the argument in traditional C/C++, but are part of the constant in ANSI C/C++.
  • A function declared external in one block and then used after the end of the block.
  • A switch statement has an operand of type long.
  • A nonstatic function declaration follows a static one. This construct is not accepted by some traditional C/C++ compilers.