diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp --- a/clang-tools-extra/modularize/Modularize.cpp +++ b/clang-tools-extra/modularize/Modularize.cpp @@ -585,8 +585,6 @@ LinkageLabel = "extern \"C\" {}"; break; case LinkageSpecDecl::lang_cxx: - case LinkageSpecDecl::lang_cxx_11: - case LinkageSpecDecl::lang_cxx_14: LinkageLabel = "extern \"C++\" {}"; break; } diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -42,7 +42,6 @@ #include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/iterator_range.h" -#include "llvm/BinaryFormat/Dwarf.h" #include "llvm/Support/Casting.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/PointerLikeTypeTraits.h" @@ -2758,15 +2757,8 @@ /// Represents the language in a linkage specification. /// /// The values are part of the serialization ABI for - /// ASTs and cannot be changed without altering that ABI. To help - /// ensure a stable ABI for this, we choose the DW_LANG_ encodings - /// from the dwarf standard. - enum LanguageIDs { - lang_c = llvm::dwarf::DW_LANG_C, - lang_cxx = llvm::dwarf::DW_LANG_C_plus_plus, - lang_cxx_11 = llvm::dwarf::DW_LANG_C_plus_plus_11, - lang_cxx_14 = llvm::dwarf::DW_LANG_C_plus_plus_14 - }; + /// ASTs and cannot be changed without altering that ABI. + enum LanguageIDs { lang_c = 1, lang_cxx = 2 }; private: /// The source location for the extern keyword. diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -1011,19 +1011,12 @@ void DeclPrinter::VisitLinkageSpecDecl(LinkageSpecDecl *D) { const char *l; - switch (D->getLanguage()) { - case LinkageSpecDecl::lang_c: + if (D->getLanguage() == LinkageSpecDecl::lang_c) l = "C"; - break; - case LinkageSpecDecl::lang_cxx_14: - l = "C++14"; - break; - case LinkageSpecDecl::lang_cxx_11: - l = "C++11"; - break; - case LinkageSpecDecl::lang_cxx: + else { + assert(D->getLanguage() == LinkageSpecDecl::lang_cxx && + "unknown language in linkage specification"); l = "C++"; - break; } Out << "extern \"" << l << "\" "; diff --git a/clang/lib/AST/JSONNodeDumper.cpp b/clang/lib/AST/JSONNodeDumper.cpp --- a/clang/lib/AST/JSONNodeDumper.cpp +++ b/clang/lib/AST/JSONNodeDumper.cpp @@ -878,12 +878,6 @@ switch (LSD->getLanguage()) { case LinkageSpecDecl::lang_c: Lang = "C"; break; case LinkageSpecDecl::lang_cxx: Lang = "C++"; break; - case LinkageSpecDecl::lang_cxx_11: - Lang = "C++11"; - break; - case LinkageSpecDecl::lang_cxx_14: - Lang = "C++14"; - break; } JOS.attribute("language", Lang); attributeOnlyIfTrue("hasBraces", LSD->hasBraces()); diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp --- a/clang/lib/AST/TextNodeDumper.cpp +++ b/clang/lib/AST/TextNodeDumper.cpp @@ -1769,12 +1769,6 @@ case LinkageSpecDecl::lang_cxx: OS << " C++"; break; - case LinkageSpecDecl::lang_cxx_11: - OS << " C++11"; - break; - case LinkageSpecDecl::lang_cxx_14: - OS << " C++14"; - break; } } diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -5192,9 +5192,7 @@ // EmitLinkageSpec - Emit all declarations in a linkage spec. void CodeGenModule::EmitLinkageSpec(const LinkageSpecDecl *LSD) { if (LSD->getLanguage() != LinkageSpecDecl::lang_c && - LSD->getLanguage() != LinkageSpecDecl::lang_cxx && - LSD->getLanguage() != LinkageSpecDecl::lang_cxx_11 && - LSD->getLanguage() != LinkageSpecDecl::lang_cxx_14) { + LSD->getLanguage() != LinkageSpecDecl::lang_cxx) { ErrorUnsupported(LSD, "linkage spec"); return; } diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -14205,10 +14205,6 @@ Language = LinkageSpecDecl::lang_c; else if (Lang == "C++") Language = LinkageSpecDecl::lang_cxx; - else if (Lang == "C++11") - Language = LinkageSpecDecl::lang_cxx_11; - else if (Lang == "C++14") - Language = LinkageSpecDecl::lang_cxx_14; else { Diag(LangStr->getExprLoc(), diag::err_language_linkage_spec_unknown) << LangStr->getSourceRange(); diff --git a/clang/lib/Sema/SemaModule.cpp b/clang/lib/Sema/SemaModule.cpp --- a/clang/lib/Sema/SemaModule.cpp +++ b/clang/lib/Sema/SemaModule.cpp @@ -31,8 +31,6 @@ ExternCLoc = LSD->getBeginLoc(); break; case LinkageSpecDecl::lang_cxx: - case LinkageSpecDecl::lang_cxx_11: - case LinkageSpecDecl::lang_cxx_14: break; } DC = LSD->getParent();