LCOV - code coverage report
Current view: top level - gcc - cppdefault.c (source / functions) Hit Total Coverage
Test: gcc.info Lines: 7 8 87.5 %
Date: 2020-03-28 11:57:23 Functions: 1 1 100.0 %
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-2020 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 GCC_INCLUDE_DIR
      59                 :            :     /* This is the dir for gcc's private headers.  */
      60                 :            :     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
      61                 :            : #endif
      62                 :            : #ifdef LOCAL_INCLUDE_DIR
      63                 :            :     /* /usr/local/include comes before the fixincluded header files.  */
      64                 :            :     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
      65                 :            :     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
      66                 :            : #endif
      67                 :            : #ifdef PREFIX_INCLUDE_DIR
      68                 :            :     { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
      69                 :            : #endif
      70                 :            : #ifdef FIXED_INCLUDE_DIR
      71                 :            :     /* This is the dir for fixincludes.  */
      72                 :            :     { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
      73                 :            :       /* A multilib suffix needs adding if different multilibs use
      74                 :            :          different headers.  */
      75                 :            : #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
      76                 :            :       1
      77                 :            : #else
      78                 :            :       0
      79                 :            : #endif
      80                 :            :     },
      81                 :            : #endif
      82                 :            : #ifdef CROSS_INCLUDE_DIR
      83                 :            :     /* One place the target system's headers might be.  */
      84                 :            :     { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
      85                 :            : #endif
      86                 :            : #ifdef TOOL_INCLUDE_DIR
      87                 :            :     /* Another place the target system's headers might be.  */
      88                 :            :     { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
      89                 :            : #endif
      90                 :            : #ifdef NATIVE_SYSTEM_HEADER_DIR
      91                 :            :     /* /usr/include comes dead last.  */
      92                 :            :     { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
      93                 :            :     { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
      94                 :            : #endif
      95                 :            :     { 0, 0, 0, 0, 0, 0 }
      96                 :            :   };
      97                 :            : #endif /* no INCLUDE_DEFAULTS */
      98                 :            : 
      99                 :            : #ifdef GCC_INCLUDE_DIR
     100                 :            : const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
     101                 :            : const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
     102                 :            : #else
     103                 :            : const char cpp_GCC_INCLUDE_DIR[] = "";
     104                 :            : const size_t cpp_GCC_INCLUDE_DIR_len = 0;
     105                 :            : #endif
     106                 :            : 
     107                 :            : /* The configured prefix.  */
     108                 :            : const char cpp_PREFIX[] = PREFIX;
     109                 :            : const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
     110                 :            : const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
     111                 :            : 
     112                 :            : /* This value is set by cpp_relocated at runtime */
     113                 :            : const char *gcc_exec_prefix;
     114                 :            : 
     115                 :            : /* Return true if the toolchain is relocated.  */
     116                 :            : bool
     117                 :     157885 : cpp_relocated (void)
     118                 :            : {
     119                 :     157885 :   static int relocated = -1;
     120                 :            : 
     121                 :            :   /* A relocated toolchain ignores standard include directories.  */
     122                 :     157885 :   if (relocated == -1)
     123                 :            :     {
     124                 :            :       /* Check if the toolchain was relocated?  */
     125                 :     157885 :       gcc_exec_prefix = getenv ("GCC_EXEC_PREFIX");
     126                 :     157885 :       if (gcc_exec_prefix)
     127                 :     157885 :        relocated = 1;
     128                 :            :       else
     129                 :          0 :        relocated = 0;
     130                 :            :     }
     131                 :            : 
     132                 :     157885 :   return relocated;
     133                 :            : }

Generated by: LCOV version 1.0

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 --enable-host-shared. GCC test suite is run with the built compiler.