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.

llvm-svn: 290577
This commit is contained in:
George Burgess IV 2016-12-27 04:01:22 +00:00
parent 5d10289639
commit ddb49837aa
1 changed files with 17 additions and 0 deletions

View File

@ -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', "");
}