git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124989
91177308-0d34-0410-b5e6-
96231b3b80d8
}
//===---------------------------------------------------------------------===//
-clang -O3 fails to devirtualize this virtual inheritance case: (GCC PR45875)
-Looks related to PR3100
-
-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 ();
-}
-
-//===---------------------------------------------------------------------===//
-
We compile this:
int foo(int a) { return (a & (~15)) / 16; }