[clang] [Sema] Instantiate destructors for initialized members (PR #128866)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 6 18:09:13 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}}
----------------
shafik wrote:

Makes sense, that might be a bit subtle for folks running into the test, so it is worth it to add a comment noting that.

https://github.com/llvm/llvm-project/pull/128866


More information about the cfe-commits mailing list