diff --git a/clang/include/clang/Basic/LangOptions.def b/clang/include/clang/Basic/LangOptions.def --- a/clang/include/clang/Basic/LangOptions.def +++ b/clang/include/clang/Basic/LangOptions.def @@ -121,7 +121,7 @@ LANGOPT(WritableStrings , 1, 0, "writable string support") LANGOPT(ConstStrings , 1, 0, "const-qualified string support") ENUM_LANGOPT(LaxVectorConversions, LaxVectorConversionKind, 2, - LaxVectorConversionKind::All, "lax vector conversions") + All, "lax vector conversions") LANGOPT(ConvergentFunctions, 1, 1, "Assume convergent functions") LANGOPT(AltiVec , 1, 0, "AltiVec-style vector initializers") LANGOPT(ZVector , 1, 0, "System z vector extensions") @@ -293,7 +293,7 @@ BENIGN_LANGOPT(SemanticInterposition , 1, 0, "semantic interposition") ENUM_LANGOPT(StackProtector, StackProtectorMode, 2, SSPOff, "stack protector mode") -ENUM_LANGOPT(TrivialAutoVarInit, TrivialAutoVarInitKind, 2, TrivialAutoVarInitKind::Uninitialized, +ENUM_LANGOPT(TrivialAutoVarInit, TrivialAutoVarInitKind, 2, Uninitialized, "trivial automatic variable initialization") ENUM_LANGOPT(SignedOverflowBehavior, SignedOverflowBehaviorTy, 2, SOB_Undefined, "signed integer overflow handling") @@ -313,7 +313,7 @@ BENIGN_LANGOPT(NumLargeByValueCopy, 32, 0, "if non-zero, warn about parameter or return Warn if parameter/return value is larger in bytes than this setting. 0 is no check.") VALUE_LANGOPT(MSCompatibilityVersion, 32, 0, "Microsoft Visual C/C++ Version") -ENUM_LANGOPT(VtorDispMode, MSVtorDispMode, 2, MSVtorDispMode::ForVBaseOverride, +ENUM_LANGOPT(VtorDispMode, MSVtorDispMode, 2, ForVBaseOverride, "How many vtordisps to insert") LANGOPT(ApplePragmaPack, 1, 0, "Apple gcc-compatible #pragma pack handling") @@ -339,7 +339,7 @@ BENIGN_LANGOPT(AllowEditorPlaceholders, 1, 0, "allow editor placeholders in source") -ENUM_LANGOPT(ClangABICompat, ClangABI, 4, ClangABI::Latest, +ENUM_LANGOPT(ClangABICompat, ClangABI, 4, Latest, "version of Clang that we should attempt to be ABI-compatible " "with") @@ -353,9 +353,9 @@ COMPATIBLE_VALUE_LANGOPT(MaxTokens, 32, 0, "Max number of tokens per TU or 0") -ENUM_LANGOPT(SignReturnAddressScope, SignReturnAddressScopeKind, 2, SignReturnAddressScopeKind::None, +ENUM_LANGOPT(SignReturnAddressScope, SignReturnAddressScopeKind, 2, None, "Scope of return address signing") -ENUM_LANGOPT(SignReturnAddressKey, SignReturnAddressKeyKind, 1, SignReturnAddressKeyKind::AKey, +ENUM_LANGOPT(SignReturnAddressKey, SignReturnAddressKeyKind, 1, AKey, "Key used for return address signing") LANGOPT(BranchTargetEnforcement, 1, 0, "Branch-target enforcement enabled") diff --git a/clang/lib/Basic/LangOptions.cpp b/clang/lib/Basic/LangOptions.cpp --- a/clang/lib/Basic/LangOptions.cpp +++ b/clang/lib/Basic/LangOptions.cpp @@ -16,7 +16,8 @@ LangOptions::LangOptions() { #define LANGOPT(Name, Bits, Default, Description) Name = Default; -#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) set##Name(Default); +#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ + set##Name(Type::Default); #include "clang/Basic/LangOptions.def" } @@ -24,7 +25,7 @@ #define LANGOPT(Name, Bits, Default, Description) #define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default; #define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ - Name = Default; + Name = static_cast(Type::Default); #include "clang/Basic/LangOptions.def" // These options do not affect AST generation.