summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/constant-expression-cxx2a.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/constant-expression-cxx2a.cpp')
-rw-r--r--clang/test/SemaCXX/constant-expression-cxx2a.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/constant-expression-cxx2a.cpp b/clang/test/SemaCXX/constant-expression-cxx2a.cpp
index ef3ce5c0ccb..cb8f16a8b0f 100644
--- a/clang/test/SemaCXX/constant-expression-cxx2a.cpp
+++ b/clang/test/SemaCXX/constant-expression-cxx2a.cpp
@@ -1283,6 +1283,15 @@ namespace dtor_call {
// FIXME: This diagnostic is wrong; the union has no active member now.
as.b.~A(); // expected-note {{destruction of member 'b' of union with active member 'a'}}
}
+
+ constexpr void destroy_pointer() {
+ using T = int*;
+ T p;
+ // We used to think this was an -> member access because its left-hand side
+ // is a pointer. Ensure we don't crash.
+ p.~T();
+ }
+ static_assert((destroy_pointer(), true));
}
namespace temp_dtor {
OpenPOWER on IntegriCloud