Annex G (informative) Ill-formed, no diagnostic required [ifndr]

G.11 [cpp]: Preprocessing directives [ifndr.cpp]

G.11.1[ifndr:cpp.cond.defined.after.macro]
Specified in: [cpp.cond]

If the expansion of a macro produces the preprocessing token defined the program is ill-formed, no diagnostic required.
[Example 1: #define A defined #if A // IFNDR, defined is generated by macro replacement in controlling expression #endif — end example]

G.11.2[ifndr:cpp.cond.defined.malformed]
Specified in: [cpp.cond]

If the defined unary operator is used when it does not match one of the specified grammatical forms, the program is ill-formed, no diagnostic required.
[Example 1: #define A #define B A) #if defined ( B // IFNDR, unary operator defined did not match valid form before replacement #endif — end example]

G.11.3[ifndr:cpp.include.malformed.headername]
Specified in: [cpp.include]

If the header-name-tokens after an include directive cannot be formed into a header-name (with implementation-defined treatment of whitespace), the program is ill-formed, no diagnostic required.
[Example 1: #include// IFNDR, does not match one of the two allowable forms — end example]