Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/clang/Basic/LangStandards.def is written in an unsupported language. File is not indexed.

0001 //===-- LangStandards.def - Language Standard Data --------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LANGSTANDARD
0010 #error "LANGSTANDARD must be defined before including this file"
0011 #endif
0012 
0013 /// LANGSTANDARD(IDENT, NAME, LANG, DESC, FEATURES)
0014 ///
0015 /// \param IDENT - The name of the standard as a C++ identifier.
0016 /// \param NAME - The name of the standard.
0017 /// \param LANG - The Language for which this is a standard.
0018 /// \param DESC - A short description of the standard.
0019 /// \param FEATURES - The standard features as flags, these are enums from the
0020 /// clang::frontend namespace, which is assumed to be available.
0021 
0022 /// LANGSTANDARD_ALIAS(IDENT, ALIAS)
0023 /// \param IDENT - The name of the standard as a C++ identifier.
0024 /// \param ALIAS - The alias of the standard.
0025 
0026 /// LANGSTANDARD_ALIAS_DEPR(IDENT, ALIAS)
0027 /// Same as LANGSTANDARD_ALIAS, but for a deprecated alias.
0028 
0029 #ifndef LANGSTANDARD_ALIAS
0030 #define LANGSTANDARD_ALIAS(IDENT, ALIAS)
0031 #endif
0032 
0033 #ifndef LANGSTANDARD_ALIAS_DEPR
0034 #define LANGSTANDARD_ALIAS_DEPR(IDENT, ALIAS) LANGSTANDARD_ALIAS(IDENT, ALIAS)
0035 #endif
0036 
0037 // C89-ish modes.
0038 LANGSTANDARD(c89, "c89",
0039              C, "ISO C 1990", 0)
0040 LANGSTANDARD_ALIAS(c89, "c90")
0041 LANGSTANDARD_ALIAS(c89, "iso9899:1990")
0042 
0043 LANGSTANDARD(c94, "iso9899:199409",
0044              C, "ISO C 1990 with amendment 1",
0045              Digraphs)
0046 
0047 LANGSTANDARD(gnu89, "gnu89",
0048              C, "ISO C 1990 with GNU extensions",
0049              LineComment | Digraphs | GNUMode)
0050 LANGSTANDARD_ALIAS(gnu89, "gnu90")
0051 
0052 // C99-ish modes
0053 LANGSTANDARD(c99, "c99",
0054              C, "ISO C 1999",
0055              LineComment | C99 | Digraphs | HexFloat)
0056 LANGSTANDARD_ALIAS(c99, "iso9899:1999")
0057 LANGSTANDARD_ALIAS_DEPR(c99, "c9x")
0058 LANGSTANDARD_ALIAS_DEPR(c99, "iso9899:199x")
0059 
0060 LANGSTANDARD(gnu99, "gnu99",
0061              C, "ISO C 1999 with GNU extensions",
0062              LineComment | C99 | Digraphs | GNUMode | HexFloat)
0063 LANGSTANDARD_ALIAS_DEPR(gnu99, "gnu9x")
0064 
0065 // C11 modes
0066 LANGSTANDARD(c11, "c11",
0067              C, "ISO C 2011",
0068              LineComment | C99 | C11 | Digraphs | HexFloat)
0069 LANGSTANDARD_ALIAS(c11, "iso9899:2011")
0070 LANGSTANDARD_ALIAS_DEPR(c11, "c1x")
0071 LANGSTANDARD_ALIAS_DEPR(c11, "iso9899:201x")
0072 
0073 LANGSTANDARD(gnu11, "gnu11",
0074              C, "ISO C 2011 with GNU extensions",
0075              LineComment | C99 | C11 | Digraphs | GNUMode | HexFloat)
0076 LANGSTANDARD_ALIAS_DEPR(gnu11, "gnu1x")
0077 
0078 // C17 modes
0079 LANGSTANDARD(c17, "c17",
0080              C, "ISO C 2017",
0081              LineComment | C99 | C11 | C17 | Digraphs | HexFloat)
0082 LANGSTANDARD_ALIAS(c17, "iso9899:2017")
0083 LANGSTANDARD_ALIAS(c17, "c18")
0084 LANGSTANDARD_ALIAS(c17, "iso9899:2018")
0085 LANGSTANDARD(gnu17, "gnu17",
0086              C, "ISO C 2017 with GNU extensions",
0087              LineComment | C99 | C11 | C17 | Digraphs | GNUMode | HexFloat)
0088 LANGSTANDARD_ALIAS(gnu17, "gnu18")
0089 
0090 // C23 modes
0091 LANGSTANDARD(c23, "c23",
0092              C, "Working Draft for ISO C23",
0093              LineComment | C99 | C11 | C17 | C23 | Digraphs | HexFloat)
0094 LANGSTANDARD_ALIAS_DEPR(c23, "c2x")
0095 LANGSTANDARD(gnu23, "gnu23",
0096              C, "Working Draft for ISO C23 with GNU extensions",
0097              LineComment | C99 | C11 | C17 | C23 | Digraphs | GNUMode | HexFloat)
0098 LANGSTANDARD_ALIAS_DEPR(gnu23, "gnu2x")
0099 // FIXME: Add the alias for iso9899:202* once we know the year ISO publishes
0100 // the document (expected to be 2024).
0101 
0102 // C2y modes
0103 LANGSTANDARD(c2y, "c2y",
0104              C, "Working Draft for ISO C2y",
0105              LineComment | C99 | C11 | C17 | C23 | C2y | Digraphs | HexFloat)
0106 LANGSTANDARD(gnu2y, "gnu2y",
0107              C, "Working Draft for ISO C2y with GNU extensions",
0108              LineComment | C99 | C11 | C17 | C23 | C2y | Digraphs | GNUMode | HexFloat)
0109 
0110 
0111 // C++ modes
0112 LANGSTANDARD(cxx98, "c++98",
0113              CXX, "ISO C++ 1998 with amendments",
0114              LineComment | CPlusPlus | Digraphs)
0115 LANGSTANDARD_ALIAS(cxx98, "c++03")
0116 
0117 LANGSTANDARD(gnucxx98, "gnu++98",
0118              CXX, "ISO C++ 1998 with amendments and GNU extensions",
0119              LineComment | CPlusPlus | Digraphs | GNUMode)
0120 LANGSTANDARD_ALIAS(gnucxx98, "gnu++03")
0121 
0122 LANGSTANDARD(cxx11, "c++11",
0123              CXX, "ISO C++ 2011 with amendments",
0124              LineComment | CPlusPlus | CPlusPlus11 | Digraphs)
0125 LANGSTANDARD_ALIAS_DEPR(cxx11, "c++0x")
0126 
0127 LANGSTANDARD(gnucxx11, "gnu++11", CXX,
0128              "ISO C++ 2011 with amendments and GNU extensions",
0129              LineComment | CPlusPlus | CPlusPlus11 | Digraphs | GNUMode)
0130 LANGSTANDARD_ALIAS_DEPR(gnucxx11, "gnu++0x")
0131 
0132 LANGSTANDARD(cxx14, "c++14",
0133              CXX, "ISO C++ 2014 with amendments",
0134              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | Digraphs)
0135 LANGSTANDARD_ALIAS_DEPR(cxx14, "c++1y")
0136 
0137 LANGSTANDARD(gnucxx14, "gnu++14",
0138              CXX, "ISO C++ 2014 with amendments and GNU extensions",
0139              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | Digraphs |
0140              GNUMode)
0141 LANGSTANDARD_ALIAS_DEPR(gnucxx14, "gnu++1y")
0142 
0143 LANGSTANDARD(cxx17, "c++17",
0144              CXX, "ISO C++ 2017 with amendments",
0145              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0146              Digraphs | HexFloat)
0147 LANGSTANDARD_ALIAS_DEPR(cxx17, "c++1z")
0148 
0149 LANGSTANDARD(gnucxx17, "gnu++17",
0150              CXX, "ISO C++ 2017 with amendments and GNU extensions",
0151              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0152              Digraphs | HexFloat | GNUMode)
0153 LANGSTANDARD_ALIAS_DEPR(gnucxx17, "gnu++1z")
0154 
0155 LANGSTANDARD(cxx20, "c++20",
0156              CXX, "ISO C++ 2020 DIS",
0157              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0158              CPlusPlus20 | Digraphs | HexFloat)
0159 LANGSTANDARD_ALIAS_DEPR(cxx20, "c++2a")
0160 
0161 LANGSTANDARD(gnucxx20, "gnu++20",
0162              CXX, "ISO C++ 2020 DIS with GNU extensions",
0163              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0164              CPlusPlus20 | Digraphs | HexFloat | GNUMode)
0165 LANGSTANDARD_ALIAS_DEPR(gnucxx20, "gnu++2a")
0166 
0167 LANGSTANDARD(cxx23, "c++23",
0168              CXX, "ISO C++ 2023 DIS",
0169              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0170              CPlusPlus20 | CPlusPlus23 | Digraphs | HexFloat)
0171 LANGSTANDARD_ALIAS_DEPR(cxx23, "c++2b")
0172 
0173 LANGSTANDARD(gnucxx23, "gnu++23",
0174              CXX, "ISO C++ 2023 DIS with GNU extensions",
0175              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0176              CPlusPlus20 | CPlusPlus23 | Digraphs | HexFloat | GNUMode)
0177 LANGSTANDARD_ALIAS_DEPR(gnucxx23, "gnu++2b")
0178 
0179 LANGSTANDARD(cxx26, "c++2c",
0180              CXX, "Working draft for C++2c",
0181              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0182              CPlusPlus20 | CPlusPlus23 | CPlusPlus26 | Digraphs | HexFloat)
0183 LANGSTANDARD_ALIAS(cxx26, "c++26")
0184 
0185 LANGSTANDARD(gnucxx26, "gnu++2c",
0186              CXX, "Working draft for C++2c with GNU extensions",
0187              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0188              CPlusPlus20 | CPlusPlus23 | CPlusPlus26 | Digraphs | HexFloat | GNUMode)
0189 LANGSTANDARD_ALIAS(gnucxx26, "gnu++26")
0190 
0191 // OpenCL
0192 LANGSTANDARD(opencl10, "cl1.0",
0193              OpenCL, "OpenCL 1.0",
0194              LineComment | C99 | Digraphs | HexFloat | OpenCL)
0195 LANGSTANDARD_ALIAS_DEPR(opencl10, "cl")
0196 
0197 LANGSTANDARD(opencl11, "cl1.1",
0198              OpenCL, "OpenCL 1.1",
0199              LineComment | C99 | Digraphs | HexFloat | OpenCL)
0200 LANGSTANDARD(opencl12, "cl1.2",
0201              OpenCL, "OpenCL 1.2",
0202              LineComment | C99 | Digraphs | HexFloat | OpenCL)
0203 LANGSTANDARD(opencl20, "cl2.0",
0204              OpenCL, "OpenCL 2.0",
0205              LineComment | C99 | Digraphs | HexFloat | OpenCL)
0206 LANGSTANDARD(opencl30, "cl3.0",
0207              OpenCL, "OpenCL 3.0",
0208              LineComment | C99 | Digraphs | HexFloat | OpenCL)
0209 
0210 LANGSTANDARD(openclcpp10, "clc++1.0",
0211              OpenCL, "C++ for OpenCL 1.0",
0212              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0213              Digraphs | HexFloat | OpenCL)
0214 LANGSTANDARD_ALIAS(openclcpp10, "clc++")
0215 
0216 LANGSTANDARD(openclcpp2021, "clc++2021",
0217              OpenCL, "C++ for OpenCL 2021",
0218              LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
0219              Digraphs | HexFloat | OpenCL)
0220 
0221 LANGSTANDARD_ALIAS_DEPR(opencl10, "CL")
0222 LANGSTANDARD_ALIAS_DEPR(opencl11, "CL1.1")
0223 LANGSTANDARD_ALIAS_DEPR(opencl12, "CL1.2")
0224 LANGSTANDARD_ALIAS_DEPR(opencl20, "CL2.0")
0225 LANGSTANDARD_ALIAS_DEPR(opencl30, "CL3.0")
0226 LANGSTANDARD_ALIAS_DEPR(openclcpp10, "CLC++")
0227 LANGSTANDARD_ALIAS_DEPR(openclcpp10, "CLC++1.0")
0228 LANGSTANDARD_ALIAS_DEPR(openclcpp2021, "CLC++2021")
0229 
0230 // HLSL
0231 LANGSTANDARD(hlsl, "hlsl",
0232              HLSL, "High Level Shader Language",
0233              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0234 
0235 LANGSTANDARD(hlsl2015, "hlsl2015",
0236              HLSL, "High Level Shader Language 2015",
0237              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0238 
0239 LANGSTANDARD(hlsl2016, "hlsl2016",
0240              HLSL, "High Level Shader Language 2016",
0241              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0242 
0243 LANGSTANDARD(hlsl2017, "hlsl2017",
0244              HLSL, "High Level Shader Language 2017",
0245              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0246 
0247 LANGSTANDARD(hlsl2018, "hlsl2018",
0248              HLSL, "High Level Shader Language 2018",
0249              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0250 
0251 LANGSTANDARD(hlsl2021, "hlsl2021",
0252              HLSL, "High Level Shader Language 2021",
0253              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0254 
0255 LANGSTANDARD(hlsl202x, "hlsl202x",
0256              HLSL, "High Level Shader Language 202x",
0257              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0258 
0259 LANGSTANDARD(hlsl202y, "hlsl202y",
0260              HLSL, "High Level Shader Language 202y",
0261              LineComment | HLSL | CPlusPlus | CPlusPlus11)
0262 
0263 
0264 #undef LANGSTANDARD
0265 #undef LANGSTANDARD_ALIAS
0266 #undef LANGSTANDARD_ALIAS_DEPR