================
@@ -70,3 +70,266 @@ DelegatingWithZeroing::DelegatingWithZeroing(int) : 
DelegatingWithZeroing() {}
 // OGCG:   store i32 %[[I_ARG]], ptr %[[I_ADDR]]
 // OGCG:   %[[THIS:.*]] = load ptr, ptr %[[THIS_ADDR]]
 // OGCG:   call void @llvm.memset.p0.i64(ptr align 4 %[[THIS]], i8 0, i64 4, 
i1 false)
+
+void other();
+
+class Base {
+public:
+  Base() { squawk(); }
+
+  virtual void squawk();
+};
+
+class Derived : public virtual Base {
+public:
+  Derived();
+  Derived(const void *inVoid);
+
+  virtual void squawk();
+};
+
+Derived::Derived() : Derived(nullptr) { other(); }
+Derived::Derived(const void *inVoid) { squawk(); }
+
+// Note: OGCG emits the constructors in a different order.
----------------
andykaylor wrote:

I tried CHECK-DAG, CHECK-DAG with CHECK-NEXT, and CHECK-LABEL. None worked. I 
found an [old 
discussion](https://groups.google.com/g/llvm-dev/c/q1TDIf6urDI/m/2Fcny3xADgAJ) 
where someone asked for CHECK-LABEL-DAG to do exactly this and even had a 
[patch to implement it](https://reviews.llvm.org/D22348), but I guess it was 
ultimately judged to be unwanted. ☹️ 

https://github.com/llvm/llvm-project/pull/156970
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to