In a main translation unit, this: #pragma GCC system_header
results in this warning: warning: #pragma system_header ignored outside include file However, this doesn't: _Pragma ("GCC system_header") In fact, this causes GCC to emit a line marker switching the main translation unit to look like a system header. -Chris -- Summary: _Pragma GCC system_header broken Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sabre at nondot dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28165