forked from OSchip/llvm-project
Support constant evaluation for member calls on std::initializer_list
temporaries. llvm-svn: 224449
This commit is contained in:
parent
aaa317a1eb
commit
513955c487
|
@ -5474,6 +5474,9 @@ public:
|
|||
bool VisitCallExpr(const CallExpr *E) {
|
||||
return VisitConstructExpr(E);
|
||||
}
|
||||
bool VisitCXXStdInitializerListExpr(const CXXStdInitializerListExpr *E) {
|
||||
return VisitConstructExpr(E);
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace
|
||||
|
||||
|
|
|
@ -1712,6 +1712,9 @@ namespace InitializerList {
|
|||
return sum(ints.begin(), ints.end());
|
||||
}
|
||||
static_assert(sum({1, 2, 3, 4, 5}) == 15, "");
|
||||
|
||||
static_assert(*std::initializer_list<int>{1, 2, 3}.begin() == 1, "");
|
||||
static_assert(std::initializer_list<int>{1, 2, 3}.begin()[2] == 3, "");
|
||||
}
|
||||
|
||||
namespace StmtExpr {
|
||||
|
|
Loading…
Reference in New Issue