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