[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)
Maurice Heumann via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 4 23:27:01 PST 2025
================
@@ -0,0 +1,48 @@
+// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
+
+namespace t1{
+template <class T> struct VSX {
+ ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \
+ // expected-note {{expression evaluates to '4 != 4'}}
+};
+struct VS {
+ union {
+ VSX<int> _Tail;
+ };
+ ~VS() { }
+ VS(short);
+};
+VS::VS(short) : _Tail() { } // expected-note {{in instantiation of member function 't1::VSX<int>::~VSX' requested here}}
----------------
momo5502 wrote:
I added a delegating constructor to the test. As the delegating constructor invokes the one that triggers the assertion, the assertion has to come either way. Therefore, I assume the test should assert that the note does not appear at the delegating constructor.
https://github.com/llvm/llvm-project/pull/128866
More information about the cfe-commits
mailing list