tbaeder 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()")); + } ---------------- 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 :) ================ 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: > 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 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