<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1987-2015 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation.  A copy of
the license is included in the
section entitled "GNU Free Documentation License".

This manual contains no Invariant Sections.  The Front-Cover Texts are
(a) (see below), and the Back-Cover Texts are (b) (see below).

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The C Preprocessor: System Headers</title>

<meta name="description" content="The C Preprocessor: System Headers">
<meta name="keywords" content="The C Preprocessor: System Headers">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Header-Files.html#Header-Files" rel="up" title="Header Files">
<link href="Macros.html#Macros" rel="next" title="Macros">
<link href="Wrapper-Headers.html#Wrapper-Headers" rel="prev" title="Wrapper Headers">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="System-Headers"></a>
<div class="header">
<p>
Previous: <a href="Wrapper-Headers.html#Wrapper-Headers" accesskey="p" rel="prev">Wrapper Headers</a>, Up: <a href="Header-Files.html#Header-Files" accesskey="u" rel="up">Header Files</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="System-Headers-1"></a>
<h3 class="section">2.8 System Headers</h3>
<a name="index-system-header-files-1"></a>

<p>The header files declaring interfaces to the operating system and
runtime libraries often cannot be written in strictly conforming C.
Therefore, GCC gives code found in <em>system headers</em> special
treatment.  All warnings, other than those generated by &lsquo;<samp>#warning</samp>&rsquo;
(see <a href="Diagnostics.html#Diagnostics">Diagnostics</a>), are suppressed while GCC is processing a system
header.  Macros defined in a system header are immune to a few warnings
wherever they are expanded.  This immunity is granted on an ad-hoc
basis, when we find that a warning generates lots of false positives
because of code in macros defined in system headers.
</p>
<p>Normally, only the headers found in specific directories are considered
system headers.  These directories are determined when GCC is compiled.
There are, however, two ways to make normal headers into system headers.
</p>
<p>The <samp>-isystem</samp> command line option adds its argument to the list of
directories to search for headers, just like <samp>-I</samp>.  Any headers
found in that directory will be considered system headers.
</p>
<p>All directories named by <samp>-isystem</samp> are searched <em>after</em> all
directories named by <samp>-I</samp>, no matter what their order was on the
command line.  If the same directory is named by both <samp>-I</samp> and
<samp>-isystem</samp>, the <samp>-I</samp> option is ignored.  GCC provides an
informative message when this occurs if <samp>-v</samp> is used.
</p>
<a name="index-_0023pragma-GCC-system_005fheader"></a>
<p>There is also a directive, <code>#pragma&nbsp;GCC&nbsp;<span class="nolinebreak">system_header</span><!-- /@w --></code>, which
tells GCC to consider the rest of the current include file a system
header, no matter where it was found.  Code that comes before the
&lsquo;<samp>#pragma</samp>&rsquo; in the file will not be affected.  <code>#pragma&nbsp;GCC&nbsp;<span class="nolinebreak">system_header</span><!-- /@w --></code> has no effect in the primary source file.
</p>
<p>On very old systems, some of the pre-defined system header directories
get even more special treatment.  GNU C++ considers code in headers
found in those directories to be surrounded by an <code>extern&nbsp;&quot;C&quot;<!-- /@w --></code>
block.  There is no way to request this behavior with a &lsquo;<samp>#pragma</samp>&rsquo;,
or from the command line.
</p>
<hr>
<div class="header">
<p>
Previous: <a href="Wrapper-Headers.html#Wrapper-Headers" accesskey="p" rel="prev">Wrapper Headers</a>, Up: <a href="Header-Files.html#Header-Files" accesskey="u" rel="up">Header Files</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
