From 9626b8d4ee5c7c80e6c3962f224fbe12689de975 Mon Sep 17 00:00:00 2001 From: Faisal Vali Date: Thu, 26 Apr 2018 00:42:40 +0000 Subject: Revert rC330794 and some dependent tiny bug fixes See Richard's humbling feedback here: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180423/226482.html http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180423/226486.html Wish I'd had the patience to solicit the feedback prior to committing :) Sorry for the noise guys. Thank you Richard for being the steward that clang deserves! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330888 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/DeclSpec.cpp | 66 +-------------------------------------------------- 1 file changed, 1 insertion(+), 65 deletions(-) (limited to 'lib/Sema/DeclSpec.cpp') diff --git a/lib/Sema/DeclSpec.cpp b/lib/Sema/DeclSpec.cpp index 5f5d94eee3..2fad5a18ba 100644 --- a/lib/Sema/DeclSpec.cpp +++ b/lib/Sema/DeclSpec.cpp @@ -426,7 +426,6 @@ unsigned DeclSpec::getParsedSpecifiers() const { return Res; } - template static bool BadSpecifier(T TNew, T TPrev, const char *&PrevSpec, unsigned &DiagID, @@ -492,6 +491,7 @@ const char *DeclSpec::getSpecifierName(TSS S) { } llvm_unreachable("Unknown typespec!"); } + const char *DeclSpec::getSpecifierName(DeclSpec::TST T, const PrintingPolicy &Policy) { switch (T) { @@ -969,69 +969,6 @@ bool DeclSpec::SetConstexprSpec(SourceLocation Loc, const char *&PrevSpec, return false; } -bool DeclSpec::setConceptSpec(const SourceLocation Loc, const char *&PrevSpec, - unsigned &DiagID, const PrintingPolicy &PP) { - assert(Loc.isValid() && "Loc must be valid, since it is used to identify " - "that this function was called before"); - assert(!ConceptLoc.isValid() && - "how is this called if concept was already encountered and triggered " - "ParseConceptDefinition which parses upto the semi-colon"); - - PrevSpec = nullptr; - if (TypeSpecType != TST_unspecified) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(TypeSpecType), PP); - ClearTypeSpecType(); - } - if (TypeSpecSign != TSS_unspecified) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(TypeSpecSign)); - TypeSpecSign = TSS_unspecified; - } - if (TypeSpecWidth != TSW_unspecified) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(TypeSpecWidth)); - TypeSpecWidth = TSW_unspecified; - } - if (StorageClassSpec != SCS_unspecified) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(StorageClassSpec)); - ClearStorageClassSpecs(); - } - if (ThreadStorageClassSpec != TSCS_unspecified) { - PrevSpec = - DeclSpec::getSpecifierName(static_cast(ThreadStorageClassSpec)); - ClearStorageClassSpecs(); - } - if (TypeSpecComplex != TSC_unspecified) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(TypeSpecComplex)); - TypeSpecComplex = TSC_unspecified; - } - if (getTypeQualifiers()) { - PrevSpec = DeclSpec::getSpecifierName(static_cast(TypeQualifiers)); - ClearTypeQualifiers(); - } - if (isFriendSpecified()) { - PrevSpec = "friend"; - Friend_specified = false; - FriendLoc = SourceLocation(); - } - if (isConstexprSpecified()) { - PrevSpec = "constexpr"; - Constexpr_specified = false; - ConstexprLoc = SourceLocation(); - } - if (isInlineSpecified()) { - PrevSpec = "inline"; - FS_inlineLoc = SourceLocation(); - FS_inline_specified = false; - } - - if (PrevSpec) { - DiagID = diag::err_invalid_decl_spec_combination; - } - // We set the concept location regardless of whether an error occurred. - DeclRep = nullptr; - ConceptLoc = Loc; - return PrevSpec; // If this is non-null, an error occurred. -} - void DeclSpec::SaveWrittenBuiltinSpecs() { writtenBS.Sign = getTypeSpecSign(); writtenBS.Width = getTypeSpecWidth(); @@ -1333,7 +1270,6 @@ void DeclSpec::Finish(Sema &S, const PrintingPolicy &Policy) { // TODO: return "auto function" and other bad things based on the real type. // 'data definition has no type or storage class'? - } bool DeclSpec::isMissingDeclaratorOk() { -- cgit v1.2.1