aaron.ballman added inline comments.

================
Comment at: clang/test/AST/Interp/literals.cpp:849
+    static_assert(strings_match(__func__, "foo"));
+    static_assert(strings_match(__PRETTY_FUNCTION__, "void 
PredefinedExprs::foo()"));
+  }
----------------
tbaeder wrote:
> tbaeder wrote:
> > aaron.ballman wrote:
> > > You should add coverage for the others as well:
> > > ```
> > >   enum IdentKind {
> > >     Func,
> > >     Function,
> > >     LFunction, // Same as Function, but as wide string.
> > >     FuncDName,
> > >     FuncSig,
> > >     LFuncSig, // Same as FuncSig, but as wide string
> > >     PrettyFunction,
> > >     /// The same as PrettyFunction, except that the
> > >     /// 'virtual' keyword is omitted for virtual member functions.
> > >     PrettyFunctionNoVirtual
> > >   };
> > > ```
> > > (you can handle the wide string variants by making `strings_match` into a 
> > > template.)
> > These don't seem to exist in C++14 onwards:
> > ```
> > array.cpp:1238:33: error: use of undeclared identifier '__FUNCDNAME__'
> >  1238 |     static_assert(strings_match(__FUNCDNAME__, "foo"), "");
> >       |                                 ^
> > array.cpp:1239:33: error: use of undeclared identifier '__FUNCSIG__'
> >  1239 |     static_assert(strings_match(__FUNCSIG__, "foo"), "");
> >       |                                 ^
> > array.cpp:1240:33: error: use of undeclared identifier '__LFUNCSIG__'
> >  1240 |     static_assert(strings_match(__LFUNCSIG__, "foo"), "");
> >       |                                 ^
> > array.cpp:1241:33: error: use of undeclared identifier '__LFUNCTION__'
> >  1241 |     static_assert(strings_match(__LFUNCTION__, "foo"), "");
> >       |                                 ^
> > array.cpp:1244:33: error: use of undeclared identifier 
> > '__PRETTY_FUNCTION_NO_VIRTUAL__'
> >  1244 |     static_assert(strings_match(__PRETTY_FUNCTION_NO_VIRTUAL__, 
> > "void PredefinedExprs::foo()"), "");
> >       |                                 ^
> > 5 errors generated.
> > ```
> > ... but I can't use a while loop (or any kind of loop, I think?) before 
> > C++14 :)
> e
They exist, but you need to enable `-fms-extensions` for them: 
https://godbolt.org/z/E94snrMd9


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148689/new/

https://reviews.llvm.org/D148689

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to