================
@@ -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

Reply via email to