Skip to content
  • chuck cranor's avatar
    ParseImplicitIncludeInfo: handle/add SunPro, XL, and -nostdinc test cases · 56834376
    chuck cranor authored
    Add parser code for compiler IDs SunPro and XL.  For SunPro, /usr/include
    appears to be hardwired in and it does not have a -nostdinc-type flag.
    
    For XL, the "xlc" and "xlC" commands determine if you are C or C++
    based on input filename.  So compiling x.c with "xlC" reverts to C
    and compiling x.cc with "xlc" upgrades to CXX.  System include paths
    are specified by:
      -qc_stdinc=[path] and -qgcc_c_stdinc=[path] (for C)
      -qcpp_stdinc=[path] and -qgcc_cpp_stdinc=[path] (for CXX)
    If you specify "-qnostdinc" then the above flags are ignored.
    Specifying an empty path reverts the value to the default
    path (e.g. "-qgcc_c_stdinc=" reverts that to the default).
    
    Adjust the code to handle parsing the case where the user specifies
    additional compiler include flags via CMAKE_C_FLAGS/CMAKE_CXX_FLAGS.
    For example: "-DCMAKE_C_FLAGS=-nostdinc" ... note that gcc and clang
    output slightly differ when -nostdinc is specified (clang skips
    printing 'search starts here:' with the angle brackets, gcc always
    prints it).
    
    Enable sunos-{C,CXX}-SunPro test cases and add XL test cases.
    Also add a few -nostdinc style tests.
    56834376