// { dg-do preprocess } // { dg-additional-options -fmodule-header } #define frob FROB // this should be translated, if it isn't the above #define will break // us MARK1 __LINE__ #include "legacy-3_a.H" MARK2 __LINE__ int move (int X = __LINE__); // Capture __LINE__ in a non-definition // this should also be translated, but elided too MARK2 __LINE__ #include "legacy-3_a.H" MARK3 __LINE__ // this should not be translated #include "legacy-3.h" // { dg-final { scan-file legacy-3_c.i {MARK1 8\nimport "[^\n]*legacy-3_a.H" \[\[__translated\]\];\nMARK2 10\n} } } // We should have stopped. // { dg-final { scan-file legacy-3_c.i {move} } } // { dg-final { scan-file legacy-3_c.i {MARK2 13\n\nMARK3 15\n} } } // { dg-final { scan-file-not legacy-3_c.i {# [^\n]*legacy-3_a.H} } } // { dg-final { scan-file legacy-3_c.i {# [^\n]*legacy-3.h} } }