There is no EndPtr anymore - reinterpret the original comment in terms
[oota-llvm.git] / lib / Target / README.txt
index 55c08173d200ba2fe67ddd372bb8c64fd463e441..6d42d812a00bf3753843531996f3021a0d60c792 100644 (file)
@@ -1963,15 +1963,23 @@ bb3:            ; preds = %entry
         ret i32 %b
 }
 //===---------------------------------------------------------------------===//
-We should fold this code into "ret i1 false" since neither %zero nor %one can
-ever be null pointers.
 
-define i1 @foo(i1 %cond) {
-  %zero = alloca i32
-  %one = alloca i32
+clang -O3 fails to devirtualize this virtual inheritance case: (GCC PR45875)
 
-  %ptr = select i1 %cond, i32* %zero, i32* %one
-  %isnull = icmp eq i32* %ptr, null
-  ret i1 %isnull
+struct c1 {};
+struct c10 : c1{
+  virtual void foo ();
+};
+struct c11 : c10, c1{
+  virtual void f6 ();
+};
+struct c28 : virtual c11{
+  void f6 ();
+};
+void check_c28 () {
+  c28 obj;
+  c11 *ptr = &obj;
+  ptr->f6 ();
 }
+
 //===---------------------------------------------------------------------===//