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: 2024-03-23 14:05:01 Functions: 100.0 % 1 1
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : /* CPP Library.
       2                 :             :    Copyright (C) 1986-2024 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                 :      208643 : cpp_relocated (void)
     126                 :             : {
     127                 :      208643 :   static int relocated = -1;
     128                 :             : 
     129                 :             :   /* A relocated toolchain ignores standard include directories.  */
     130                 :      208643 :   if (relocated == -1)
     131                 :             :     {
     132                 :             :       /* Check if the toolchain was relocated?  */
     133                 :      208643 :       gcc_exec_prefix = getenv ("GCC_EXEC_PREFIX");
     134                 :      208643 :       if (gcc_exec_prefix)
     135                 :      208643 :        relocated = 1;
     136                 :             :       else
     137                 :           0 :        relocated = 0;
     138                 :             :     }
     139                 :             : 
     140                 :      208643 :   return relocated;
     141                 :             : }
        

Generated by: LCOV version 2.0-1

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.