(root)/
gcc-13.2.0/
gcc/
cp/
lang-specs.h
       1  /* Definitions for specs for C++.
       2     Copyright (C) 1995-2023 Free Software Foundation, Inc.
       3  
       4  This file is part of GCC.
       5  
       6  GCC is free software; you can redistribute it and/or modify
       7  it under the terms of the GNU General Public License as published by
       8  the Free Software Foundation; either version 3, or (at your option)
       9  any later version.
      10  
      11  GCC is distributed in the hope that it will be useful,
      12  but WITHOUT ANY WARRANTY; without even the implied warranty of
      13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14  GNU General Public License for more details.
      15  
      16  You should have received a copy of the GNU General Public License
      17  along with GCC; see the file COPYING3.  If not see
      18  <http://www.gnu.org/licenses/>.  */
      19  
      20  /* This is the contribution to the `default_compilers' array in gcc.cc for
      21     g++.  */
      22  
      23  #ifndef CPLUSPLUS_CPP_SPEC
      24  #define CPLUSPLUS_CPP_SPEC 0
      25  #endif
      26  
      27    {".cc",  "@c++", 0, 0, 0},
      28    {".cp",  "@c++", 0, 0, 0},
      29    {".cxx", "@c++", 0, 0, 0},
      30    {".cpp", "@c++", 0, 0, 0},
      31    {".c++", "@c++", 0, 0, 0},
      32    {".C",   "@c++", 0, 0, 0},
      33    {".CPP", "@c++", 0, 0, 0},
      34    {".H",   "@c++-header", 0, 0, 0},
      35    {".hpp", "@c++-header", 0, 0, 0},
      36    {".hp",  "@c++-header", 0, 0, 0},
      37    {".hxx", "@c++-header", 0, 0, 0},
      38    {".h++", "@c++-header", 0, 0, 0},
      39    {".HPP", "@c++-header", 0, 0, 0},
      40    {".tcc", "@c++-header", 0, 0, 0},
      41    {".hh",  "@c++-header", 0, 0, 0},
      42    {"@c++-header",
      43        "%{E|M|MM:cc1plus -E %{fmodules-ts:-fdirectives-only -fmodule-header}"
      44        "  %(cpp_options) %2 %(cpp_debug_options)}"
      45        "%{!E:%{!M:%{!MM:"
      46        "  %{save-temps*|no-integrated-cpp:cc1plus -E"
      47        "    %{fmodules-ts:-fdirectives-only -fmodule-header}"
      48        "	   %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}"
      49        "  cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed"
      50        "            %{fmodules-ts:-fdirectives-only}"
      51        " 	   %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
      52        "  %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
      53        "  %{fmodules-ts:-fmodule-header %{fpreprocessed:-fdirectives-only}}"
      54        "  %(cc1_options) %2"
      55        "  %{!fsyntax-only:"
      56        "    %{!S:-o %g.s%V}"
      57        "    %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
      58        "	         %{!o*:--output-pch %i.gch}%W{o*:--output-pch %*}}}}}"
      59        "}}}",
      60       CPLUSPLUS_CPP_SPEC, 0, 0},
      61    {"@c++-system-header",
      62        "%{E|M|MM:cc1plus -E"
      63        "  %{fmodules-ts:-fdirectives-only -fmodule-header=system}"
      64        "  %(cpp_options) %2 %(cpp_debug_options)}"
      65        "%{!E:%{!M:%{!MM:"
      66        "  %{save-temps*|no-integrated-cpp:cc1plus -E"
      67        "    %{fmodules-ts:-fdirectives-only -fmodule-header=system}"
      68        "	   %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}"
      69        "  cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed"
      70        "            %{fmodules-ts:-fdirectives-only}"
      71        " 	   %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
      72        "  %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
      73        "  %{fmodules-ts:-fmodule-header=system"
      74        "    %{fpreprocessed:-fdirectives-only}}"
      75        "  %(cc1_options) %2"
      76        "  %{!fsyntax-only:"
      77        "    %{!S:-o %g.s%V}"
      78        "    %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
      79        "	         %{!o*:--output-pch %i.gch}%W{o*:--output-pch %*}}}}}"
      80        "}}}",
      81       CPLUSPLUS_CPP_SPEC, 0, 0},
      82    {"@c++-user-header",
      83        "%{E|M|MM:cc1plus -E"
      84        "  %{fmodules-ts:-fdirectives-only -fmodule-header=user}"
      85        "  %(cpp_options) %2 %(cpp_debug_options)}"
      86        "%{!E:%{!M:%{!MM:"
      87        "  %{save-temps*|no-integrated-cpp:cc1plus -E"
      88        "    %{fmodules-ts:-fdirectives-only -fmodule-header=user}"
      89        "	   %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}"
      90        "  cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed"
      91        "            %{fmodules-ts:-fdirectives-only}"
      92        " 	   %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
      93        "  %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
      94        "  %{fmodules-ts:-fmodule-header=user %{fpreprocessed:-fdirectives-only}}"
      95        "  %(cc1_options) %2"
      96        "  %{!fsyntax-only:"
      97        "    %{!S:-o %g.s%V}"
      98        "    %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
      99        "	         %{!o*:--output-pch %i.gch}%W{o*:--output-pch %*}}}}}"
     100        "}}}",
     101       CPLUSPLUS_CPP_SPEC, 0, 0},
     102    {"@c++",
     103        "%{E|M|MM:cc1plus -E %(cpp_options) %2 %(cpp_debug_options)}"
     104        "%{!E:%{!M:%{!MM:"
     105        "  %{save-temps*|no-integrated-cpp:cc1plus -E"
     106        "	   %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}"
     107        "  cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed"
     108        " 	   %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
     109        "  %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
     110        "  %(cc1_options) %2"
     111        "  %{!fsyntax-only:"
     112        "    %{fmodule-only:%{!S:-o %g.s%V}}"
     113        "    %{!fmodule-only:%(invoke_as)}}"
     114        "}}}",
     115        CPLUSPLUS_CPP_SPEC, 0, 0},
     116    {".ii", "@c++-cpp-output", 0, 0, 0},
     117    {"@c++-cpp-output",
     118        "%{!E:%{!M:%{!MM:"
     119        "  cc1plus -fpreprocessed %i %(cc1_options) %2"
     120        "  %{!fsyntax-only:"
     121        "    %{fmodule-only:%{!S:-o %g.s%V}}"
     122        "    %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
     123        "}}}", 0, 0, 0},