diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2019-05-14 12:09:55 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2019-05-14 12:09:55 +0000 |
commit | d06f3917913d2558b771ccc48d838f8cd8993c01 (patch) | |
tree | 957516d03841b0c4dd0d364b70718a0f592e8f62 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 2dd5283d2a3ad0d6566af13bd1c79d314bdea5bc (diff) | |
download | llvm-d06f3917913d2558b771ccc48d838f8cd8993c01.zip llvm-d06f3917913d2558b771ccc48d838f8cd8993c01.tar.gz llvm-d06f3917913d2558b771ccc48d838f8cd8993c01.tar.bz2 |
Add a new language mode for C2x; enable [[attribute]] support by default in C2x.
llvm-svn: 360667
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index c95c67a..e9137bb 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2134,6 +2134,7 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, Opts.C99 = Std.isC99(); Opts.C11 = Std.isC11(); Opts.C17 = Std.isC17(); + Opts.C2x = Std.isC2x(); Opts.CPlusPlus = Std.isCPlusPlus(); Opts.CPlusPlus11 = Std.isCPlusPlus11(); Opts.CPlusPlus14 = Std.isCPlusPlus14(); @@ -2200,6 +2201,9 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, Opts.AlignedAllocation = Opts.CPlusPlus17; Opts.DollarIdents = !Opts.AsmPreprocessor; + + // Enable [[]] attributes in C++11 and C2x by default. + Opts.DoubleSquareBracketAttributes = Opts.CPlusPlus11 || Opts.C2x; } /// Attempt to parse a visibility value out of the given argument. @@ -2605,10 +2609,10 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, Opts.BlocksRuntimeOptional = Args.hasArg(OPT_fblocks_runtime_optional); Opts.Coroutines = Opts.CPlusPlus2a || Args.hasArg(OPT_fcoroutines_ts); - // Enable [[]] attributes in C++11 by default. Opts.DoubleSquareBracketAttributes = Args.hasFlag(OPT_fdouble_square_bracket_attributes, - OPT_fno_double_square_bracket_attributes, Opts.CPlusPlus11); + OPT_fno_double_square_bracket_attributes, + Opts.DoubleSquareBracketAttributes); Opts.CPlusPlusModules = Opts.CPlusPlus2a; Opts.ModulesTS = Args.hasArg(OPT_fmodules_ts); |