]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/blob - contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
[FreeBSD/stable/9.git] / contrib / llvm / tools / clang / include / clang / Frontend / LangStandards.def
1 //===-- LangStandards.def - Language Standard Data --------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LANGSTANDARD
11 #error "LANGSTANDARD must be defined before including this file"
12 #endif
13
14 /// LANGSTANDARD(IDENT, NAME, DESC, FEATURES)
15 ///
16 /// \param IDENT - The name of the standard as a C++ identifier.
17 /// \param NAME - The name of the standard.
18 /// \param DESC - A short description of the standard.
19 /// \param FEATURES - The standard features as flags, these are enums from the
20 /// clang::frontend namespace, which is assumed to be be available.
21
22 // C89-ish modes.
23 LANGSTANDARD(c89, "c89",
24              "ISO C 1990",
25              C89 | ImplicitInt)
26 LANGSTANDARD(c90, "c90",
27              "ISO C 1990",
28              C89 | ImplicitInt)
29 LANGSTANDARD(iso9899_1990, "iso9899:1990",
30              "ISO C 1990",
31              C89 | ImplicitInt)
32
33 LANGSTANDARD(c94, "iso9899:199409",
34              "ISO C 1990 with amendment 1",
35              C89 | Digraphs | ImplicitInt)
36
37 LANGSTANDARD(gnu89, "gnu89",
38              "ISO C 1990 with GNU extensions",
39              BCPLComment | C89 | Digraphs | GNUMode | ImplicitInt)
40
41 // C99-ish modes
42 LANGSTANDARD(c99, "c99",
43              "ISO C 1999",
44              BCPLComment | C99 | Digraphs | HexFloat)
45 LANGSTANDARD(c9x, "c9x",
46              "ISO C 1999",
47              BCPLComment | C99 | Digraphs | HexFloat)
48 LANGSTANDARD(iso9899_1999,
49              "iso9899:1999", "ISO C 1999",
50              BCPLComment | C99 | Digraphs | HexFloat)
51 LANGSTANDARD(iso9899_199x,
52              "iso9899:199x", "ISO C 1999",
53              BCPLComment | C99 | Digraphs | HexFloat)
54
55 LANGSTANDARD(gnu99, "gnu99",
56              "ISO C 1999 with GNU extensions",
57              BCPLComment | C99 | Digraphs | GNUMode | HexFloat)
58 LANGSTANDARD(gnu9x, "gnu9x",
59              "ISO C 1999 with GNU extensions",
60              BCPLComment | C99 | Digraphs | GNUMode | HexFloat)
61
62 // C1X modes
63 LANGSTANDARD(c1x, "c1x",
64              "ISO C 201X",
65              BCPLComment | C99 | C1X | Digraphs | HexFloat)
66 LANGSTANDARD(iso9899_201x,
67              "iso9899:201x", "ISO C 201X",
68              BCPLComment | C99 | C1X | Digraphs | HexFloat)
69
70 LANGSTANDARD(gnu1x, "gnu1x",
71              "ISO C 201X with GNU extensions",
72              BCPLComment | C99 | C1X | Digraphs | GNUMode | HexFloat)
73
74 // C++ modes
75 LANGSTANDARD(cxx98, "c++98",
76              "ISO C++ 1998 with amendments",
77              BCPLComment | CPlusPlus | Digraphs)
78 LANGSTANDARD(gnucxx98, "gnu++98",
79              "ISO C++ 1998 with " "amendments and GNU extensions",
80              BCPLComment | CPlusPlus | Digraphs | GNUMode)
81
82 LANGSTANDARD(cxx0x, "c++0x",
83              "Upcoming ISO C++ 200x with amendments",
84              BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs)
85 LANGSTANDARD(gnucxx0x, "gnu++0x",
86              "Upcoming ISO C++ 200x with amendments and GNU extensions",
87              BCPLComment | CPlusPlus | CPlusPlus0x | Digraphs | GNUMode)
88
89 // OpenCL
90 LANGSTANDARD(opencl, "cl",
91              "OpenCL 1.0",
92              BCPLComment | C99 | Digraphs | HexFloat)
93
94 // CUDA
95 LANGSTANDARD(cuda, "cuda",
96              "NVIDIA CUDA(tm)",
97              BCPLComment | CPlusPlus | Digraphs)
98
99 #undef LANGSTANDARD