Author: aaronballman
Date: Thu Oct 18 10:42:41 2018
New Revision: 344749

URL: http://llvm.org/viewvc/llvm-project?rev=344749&view=rev
Log:
Add language standard aliases for -std=c18, -std=gnu18, and -std=iso9899:2018.

As described in D40225, the C17 standard was balloted and approved in 2017, but 
the ISO publication process delayed the actual publication until 2018. WG14 
considers the release to be C17 and describes it as such, but users can still 
be confused by the publication year which is why -std=c18 adds value. These 
aliases map to c17 and are all supported by GCC 8.x with the same behavior. 
Note that the value of __STDC_VERSION__ remains at 201710L.

Modified:
    cfe/trunk/include/clang/Frontend/LangStandards.def
    cfe/trunk/test/Driver/unknown-std.c
    cfe/trunk/test/Preprocessor/c17.c

Modified: cfe/trunk/include/clang/Frontend/LangStandards.def
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/LangStandards.def?rev=344749&r1=344748&r2=344749&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/LangStandards.def (original)
+++ cfe/trunk/include/clang/Frontend/LangStandards.def Thu Oct 18 10:42:41 2018
@@ -82,9 +82,12 @@ LANGSTANDARD(c17, "c17",
              C, "ISO C 2017",
              LineComment | C99 | C11 | C17 | Digraphs | HexFloat)
 LANGSTANDARD_ALIAS(c17, "iso9899:2017")
+LANGSTANDARD_ALIAS(c17, "c18")
+LANGSTANDARD_ALIAS(c17, "iso9899:2018")
 LANGSTANDARD(gnu17, "gnu17",
              C, "ISO C 2017 with GNU extensions",
              LineComment | C99 | C11 | C17 | Digraphs | GNUMode | HexFloat)
+LANGSTANDARD_ALIAS(gnu17, "gnu18")
 
 // C++ modes
 LANGSTANDARD(cxx98, "c++98",

Modified: cfe/trunk/test/Driver/unknown-std.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/unknown-std.c?rev=344749&r1=344748&r2=344749&view=diff
==============================================================================
--- cfe/trunk/test/Driver/unknown-std.c (original)
+++ cfe/trunk/test/Driver/unknown-std.c Thu Oct 18 10:42:41 2018
@@ -14,8 +14,8 @@
 // CHECK-NEXT: note: use 'gnu99' for 'ISO C 1999 with GNU extensions' standard
 // CHECK-NEXT: note: use 'c11' or 'iso9899:2011' for 'ISO C 2011' standard
 // CHECK-NEXT: note: use 'gnu11' for 'ISO C 2011 with GNU extensions' standard
-// CHECK-NEXT: note: use 'c17' or 'iso9899:2017' for 'ISO C 2017' standard
-// CHECK-NEXT: note: use 'gnu17' for 'ISO C 2017 with GNU extensions' standard
+// CHECK-NEXT: note: use 'c17', 'iso9899:2017', 'c18', or 'iso9899:2018' for 
'ISO C 2017' standard
+// CHECK-NEXT: note: use 'gnu17' or 'gnu18' for 'ISO C 2017 with GNU 
extensions' standard
 
 // Make sure that no other output is present.
 // CHECK-NOT: {{^.+$}}

Modified: cfe/trunk/test/Preprocessor/c17.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/c17.c?rev=344749&r1=344748&r2=344749&view=diff
==============================================================================
--- cfe/trunk/test/Preprocessor/c17.c (original)
+++ cfe/trunk/test/Preprocessor/c17.c Thu Oct 18 10:42:41 2018
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -std=c17 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c18 %s
 // expected-no-diagnostics
 
 _Static_assert(__STDC_VERSION__ == 201710L, "Incorrect __STDC_VERSION__");


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to