Author: gbiv Date: Mon Dec 26 22:01:22 2016 New Revision: 290577 URL: http://llvm.org/viewvc/llvm-project?rev=290577&view=rev Log: Add a test for `const` folding introduced by r290297. NFC.
AFAICT, we didn't add a test targeted at the new "const can sometimes act as constexpr" behavior introduced by r290297. Modified: cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpp Modified: cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpp?rev=290577&r1=290576&r2=290577&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpp (original) +++ cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpp Mon Dec 26 22:01:22 2016 @@ -957,3 +957,20 @@ namespace PR27989 { } static_assert(f(0) == 1, ""); } + +namespace const_char { +template <int M, int N> +constexpr int sum(const char (&Arr)[N]) { + static_assert(N >= M, ""); + int S = 0; + for (unsigned I = 0; I != M; ++I) + S += Arr[I]; + return S; +} + +// As an extension, we support evaluating some things that are `const` as though +// they were `constexpr`. +const char Cs[] = {'a', 'b', 'c'}; +const int N = 2; +static_assert(sum<N>(Cs) == 'a' + 'b', ""); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits