Commit 67c608a9 authored by Saar Raz's avatar Saar Raz
Browse files

[Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a

Now with concepts support merged and mostly complete, we do not need -fconcepts-ts
(which was also misleading as we were not implementing the TS) and can enable
concepts features under C++2a. A warning will be generated if users still attempt
to use -fconcepts-ts.
parent fcaf5f6c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -105,6 +105,9 @@ def err_fe_invalid_wchar_type
    : Error<"invalid wchar_t type '%0'; must be one of 'char', 'short', 'int'">;
def err_fe_invalid_exception_model
   : Error<"invalid exception model '%0' for target '%1'">;
def warn_fe_concepts_ts_flag : Warning<
  "-fconcepts-ts is deprecated - use '-std=c++2a' for Concepts support">,
  InGroup<Deprecated>;

def warn_fe_serialized_diag_merge_failure : Warning<
    "unable to merge a subprocess's serialized diagnostics">,
+0 −1
Original line number Diff line number Diff line
@@ -237,7 +237,6 @@ LANGOPT(SizedDeallocation , 1, 0, "sized deallocation")
LANGOPT(AlignedAllocation , 1, 0, "aligned allocation")
LANGOPT(AlignedAllocationUnavailable, 1, 0, "aligned allocation functions are unavailable")
LANGOPT(NewAlignOverride  , 32, 0, "maximum alignment guaranteed by '::operator new(size_t)'")
LANGOPT(ConceptsTS , 1, 0, "enable C++ Extensions for Concepts")
LANGOPT(ConceptSatisfactionCaching , 1, 1, "enable satisfaction caching for C++2a Concepts")
BENIGN_LANGOPT(ModulesCodegen , 1, 0, "Modules code generation")
BENIGN_LANGOPT(ModulesDebugInfo , 1, 0, "Modules debug info")
+1 −1
Original line number Diff line number Diff line
@@ -373,7 +373,7 @@ CXX11_KEYWORD(nullptr , 0)
CXX11_KEYWORD(static_assert         , KEYMSCOMPAT)
CXX11_KEYWORD(thread_local          , 0)

// C++2a / concepts TS keywords
// C++2a keywords
CONCEPTS_KEYWORD(concept)
CONCEPTS_KEYWORD(requires)

+1 −1
Original line number Diff line number Diff line
@@ -556,7 +556,7 @@ def ftest_module_file_extension_EQ :
  HelpText<"introduce a module file extension for testing purposes. "
           "The argument is parsed as blockname:major:minor:hashed:user info">;
def fconcepts_ts : Flag<["-"], "fconcepts-ts">,
  HelpText<"Enable C++ Extensions for Concepts.">;
  HelpText<"Enable C++ Extensions for Concepts. (deprecated - use -std=c++2a)">;
def fno_concept_satisfaction_caching : Flag<["-"],
                                            "fno-concept-satisfaction-caching">,
  HelpText<"Disable satisfaction caching for C++2a Concepts.">;
+1 −1
Original line number Diff line number Diff line
@@ -693,7 +693,7 @@ NonTypeTemplateParmDecl::Create(const ASTContext &C, DeclContext *DC,
                                QualType T, bool ParameterPack,
                                TypeSourceInfo *TInfo) {
  AutoType *AT =
      C.getLangOpts().ConceptsTS ? T->getContainedAutoType() : nullptr;
      C.getLangOpts().CPlusPlus2a ? T->getContainedAutoType() : nullptr;
  return new (C, DC,
              additionalSizeToAlloc<std::pair<QualType, TypeSourceInfo *>,
                                    Expr *>(0,
Loading