Lgtm Sent from my iPad
> On May 22, 2015, at 7:34 PM, Richard Smith <[email protected]> wrote: > > On 21 May 2015 6:20 pm, "Faisal Vali" <[email protected]> wrote: > > > > Committed as r237982. > > > > http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20150518/129643.html > > > > Richard - are you ok with us proceeding like this (for tiny innocuous > > patches), until Hubert gets his access? > > Yes, that seems fine. > > > Thanks! > > > > Faisal Vali > > > > > > > > On Thu, May 21, 2015 at 8:06 AM, Hubert Tong > > <[email protected]> wrote: > > > Hi rsmith, faisalv, fraggamuffin, rcraik, > > > > > > This adds `-fconcepts-ts` as a `cc1` option for enabling the > > > in-progress implementation of the Concepts TS. The recommended feature > > > test macro `__cpp_experimental_concepts` is set to `1` (as opposed to > > > `201501`) to indicate that the feature is enabled, but the > > > implementation is incomplete. > > > > > > The link to the Concepts TS in `cxx_status` is updated to refer to the > > > PDTS (N4377). Additional changes related to `__has_feature` and > > > `__has_extension` are to follow in a later change. > > > > > > http://reviews.llvm.org/D9909 > > > > > > Files: > > > include/clang/Basic/LangOptions.def > > > include/clang/Driver/CC1Options.td > > > lib/Frontend/CompilerInvocation.cpp > > > lib/Frontend/InitPreprocessor.cpp > > > test/Lexer/cxx-features.cpp > > > www/cxx_status.html > > > > > > Index: include/clang/Basic/LangOptions.def > > > =================================================================== > > > --- include/clang/Basic/LangOptions.def > > > +++ include/clang/Basic/LangOptions.def > > > @@ -167,6 +167,7 @@ > > > > > > LANGOPT(AssumeSaneOperatorNew , 1, 1, "implicit __attribute__((malloc)) > > > for C++'s new operators") > > > LANGOPT(SizedDeallocation , 1, 0, "enable sized deallocation functions") > > > +LANGOPT(ConceptsTS , 1, 0, "enable C++ Extensions for Concepts") > > > BENIGN_LANGOPT(ElideConstructors , 1, 1, "C++ copy constructor elision") > > > BENIGN_LANGOPT(DumpRecordLayouts , 1, 0, "dumping the layout of IRgen'd > > > records") > > > BENIGN_LANGOPT(DumpRecordLayoutsSimple , 1, 0, "dumping the layout of > > > IRgen'd records in a simple form") > > > Index: include/clang/Driver/CC1Options.td > > > =================================================================== > > > --- include/clang/Driver/CC1Options.td > > > +++ include/clang/Driver/CC1Options.td > > > @@ -365,6 +365,8 @@ > > > Flag<["-"], "fmodules-local-submodule-visibility">, > > > HelpText<"Enforce name visibility rules across submodules of the same " > > > "top-level module.">; > > > +def fconcepts_ts : Flag<["-"], "fconcepts-ts">, > > > + HelpText<"Enable C++ Extensions for Concepts.">; > > > > > > let Group = Action_Group in { > > > > > > Index: lib/Frontend/CompilerInvocation.cpp > > > =================================================================== > > > --- lib/Frontend/CompilerInvocation.cpp > > > +++ lib/Frontend/CompilerInvocation.cpp > > > @@ -1537,6 +1537,7 @@ > > > Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin); > > > Opts.AssumeSaneOperatorNew = > > > !Args.hasArg(OPT_fno_assume_sane_operator_new); > > > Opts.SizedDeallocation = Args.hasArg(OPT_fsized_deallocation); > > > + Opts.ConceptsTS = Args.hasArg(OPT_fconcepts_ts); > > > Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions); > > > Opts.AccessControl = !Args.hasArg(OPT_fno_access_control); > > > Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors); > > > Index: lib/Frontend/InitPreprocessor.cpp > > > =================================================================== > > > --- lib/Frontend/InitPreprocessor.cpp > > > +++ lib/Frontend/InitPreprocessor.cpp > > > @@ -453,6 +453,8 @@ > > > } > > > if (LangOpts.SizedDeallocation) > > > Builder.defineMacro("__cpp_sized_deallocation", "201309"); > > > + if (LangOpts.ConceptsTS) > > > + Builder.defineMacro("__cpp_experimental_concepts", "1"); > > > } > > > > > > static void InitializePredefinedMacros(const TargetInfo &TI, > > > Index: test/Lexer/cxx-features.cpp > > > =================================================================== > > > --- test/Lexer/cxx-features.cpp > > > +++ test/Lexer/cxx-features.cpp > > > @@ -1,6 +1,7 @@ > > > // RUN: %clang_cc1 -std=c++98 -verify %s > > > // RUN: %clang_cc1 -std=c++11 -verify %s > > > // RUN: %clang_cc1 -std=c++1y -fsized-deallocation -verify %s > > > +// RUN: %clang_cc1 -std=c++1y -fsized-deallocation -fconcepts-ts > > > -DCONCEPTS_TS=1 -verify %s > > > > > > // expected-no-diagnostics > > > > > > @@ -123,3 +124,7 @@ > > > #if check(alias_templates, 0, 200704, 200704) > > > #error "wrong value for __cpp_alias_templates" > > > #endif > > > + > > > +#if check(experimental_concepts, 0, 0, CONCEPTS_TS) > > > +#error "wrong value for __cpp_experimental_concepts" > > > +#endif > > > Index: www/cxx_status.html > > > =================================================================== > > > --- www/cxx_status.html > > > +++ www/cxx_status.html > > > @@ -631,7 +631,7 @@ > > > </tr> > > > <tr> > > > <td>[DRAFT TS] Concepts</td> > > > - <td><a > > > href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3929.pdf">N3929</a></td> > > > + <td><a > > > href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf">N4377</a></td> > > > <td class="none" align="center">No</td> > > > </tr> > > > </table> > > > > > > EMAIL PREFERENCES > > > http://reviews.llvm.org/settings/panel/emailpreferences/
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
