================
@@ -27,12 +27,40 @@ struct E {
constexpr E(){};
} TestE;
-// Declared but not defined constexpr constructor should not emit full debug
info..
-// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name:
"DeclaredConstexpr"{{.*}}flags: DIFlagFwdDecl
+// Restored by this revert: a constexpr constructor that is only declared keeps
+// the class exempt from constructor homing. See Aliased below for a case where
+// narrowing the exemption to defined constructors homes the type nowhere.
+// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name:
"DeclaredConstexpr"{{.*}}DIFlagTypePassByValue
struct DeclaredConstexpr {
constexpr DeclaredConstexpr();
} TestDeclaredConstexpr;
+// A constructor of a class template specialization is only instantiated, and
----------------
ClaytonKnittel wrote:
Maybe reference the standard layout union exception from strict aliasing?
https://github.com/llvm/llvm-project/pull/221566
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits