LCOV - code coverage report
Current view: top level - gcc - cppdefault.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 87.5 % 8 7
Test Date: 2026-02-28 14:20:25 Functions: 100.0 % 1 1
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* CPP Library.
       2              :    Copyright (C) 1986-2026 Free Software Foundation, Inc.
       3              :    Contributed by Per Bothner, 1994-95.
       4              :    Based on CCCP program by Paul Rubin, June 1986
       5              :    Adapted to ANSI C, Richard Stallman, Jan 1987
       6              : 
       7              :    This program is free software; you can redistribute it and/or modify it
       8              :    under the terms of the GNU General Public License as published by the
       9              :    Free Software Foundation; either version 3, or (at your option) any
      10              :    later version.
      11              : 
      12              :    This program is distributed in the hope that it will be useful,
      13              :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      14              :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15              :    GNU General Public License for more details.
      16              : 
      17              :    You should have received a copy of the GNU General Public License
      18              :    along with this program; see the file COPYING3.  If not see
      19              :    <http://www.gnu.org/licenses/>.  */
      20              : 
      21              : #include "config.h"
      22              : #include "system.h"
      23              : #include "coretypes.h"
      24              : #include "tm.h"
      25              : #include "cppdefault.h"
      26              : 
      27              : #ifndef NATIVE_SYSTEM_HEADER_COMPONENT
      28              : #define NATIVE_SYSTEM_HEADER_COMPONENT 0
      29              : #endif
      30              : 
      31              : #if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
      32              : # undef LOCAL_INCLUDE_DIR
      33              : # undef NATIVE_SYSTEM_HEADER_DIR
      34              : #else
      35              : # undef CROSS_INCLUDE_DIR
      36              : #endif
      37              : 
      38              : const struct default_include cpp_include_defaults[]
      39              : #ifdef INCLUDE_DEFAULTS
      40              : = INCLUDE_DEFAULTS;
      41              : #else
      42              : = {
      43              : #ifdef GPLUSPLUS_INCLUDE_DIR
      44              :     /* Pick up GNU C++ generic include files.  */
      45              :     { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
      46              :       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
      47              : #endif
      48              : #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
      49              :     /* Pick up GNU C++ target-dependent include files.  */
      50              :     { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
      51              :       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
      52              : #endif
      53              : #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
      54              :     /* Pick up GNU C++ backward and deprecated include files.  */
      55              :     { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
      56              :       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
      57              : #endif
      58              : #ifdef GPLUSPLUS_LIBCXX_INCLUDE_DIR
      59              :     /* Pick up libc++ include files, if we have -stdlib=libc++.  */
      60              :     { GPLUSPLUS_LIBCXX_INCLUDE_DIR, "G++", 2, 1,
      61              :       GPLUSPLUS_LIBCXX_INCLUDE_DIR_ADD_SYSROOT, 0 },
      62              : #endif
      63              : #ifdef GCC_INCLUDE_DIR
      64              :     /* This is the dir for gcc's private headers.  */
      65              :     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
      66              : #endif
      67              : #ifdef LOCAL_INCLUDE_DIR
      68              :     /* /usr/local/include comes before the fixincluded header files.  */
      69              :     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
      70              :     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
      71              : #endif
      72              : #ifdef PREFIX_INCLUDE_DIR
      73              :     { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
      74              : #endif
      75              : #ifdef FIXED_INCLUDE_DIR
      76              :     /* This is the dir for fixincludes.  */
      77              : #ifndef SYSROOT_HEADERS_SUFFIX_SPEC
      78              :     { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 2 },
      79              : #endif
      80              :     { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
      81              :       /* A multilib suffix needs adding if different multilibs use
      82              :          different headers.  */
      83              : #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
      84              :       1
      85              : #else
      86              :       0
      87              : #endif
      88              :     },
      89              : #endif
      90              : #ifdef CROSS_INCLUDE_DIR
      91              :     /* One place the target system's headers might be.  */
      92              :     { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
      93              : #endif
      94              : #ifdef TOOL_INCLUDE_DIR
      95              :     /* Another place the target system's headers might be.  */
      96              :     { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
      97              : #endif
      98              : #ifdef NATIVE_SYSTEM_HEADER_DIR
      99              :     /* /usr/include comes dead last.  */
     100              :     { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
     101              :     { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
     102              : #endif
     103              :     { 0, 0, 0, 0, 0, 0 }
     104              :   };
     105              : #endif /* no INCLUDE_DEFAULTS */
     106              : 
     107              : #ifdef GCC_INCLUDE_DIR
     108              : const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
     109              : const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
     110              : #else
     111              : const char cpp_GCC_INCLUDE_DIR[] = "";
     112              : const size_t cpp_GCC_INCLUDE_DIR_len = 0;
     113              : #endif
     114              : 
     115              : /* The configured prefix.  */
     116              : const char cpp_PREFIX[] = PREFIX;
     117              : const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
     118              : const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
     119              : 
     120              : /* This value is set by cpp_relocated at runtime */
     121              : const char *gcc_exec_prefix;
     122              : 
     123              : /* Return true if the toolchain is relocated.  */
     124              : bool
     125       208948 : cpp_relocated (void)
     126              : {
     127       208948 :   static int relocated = -1;
     128              : 
     129              :   /* A relocated toolchain ignores standard include directories.  */
     130       208948 :   if (relocated == -1)
     131              :     {
     132              :       /* Check if the toolchain was relocated?  */
     133       208948 :       gcc_exec_prefix = getenv ("GCC_EXEC_PREFIX");
     134       208948 :       if (gcc_exec_prefix)
     135       208948 :        relocated = 1;
     136              :       else
     137            0 :        relocated = 0;
     138              :     }
     139              : 
     140       208948 :   return relocated;
     141              : }
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.