From 9c93d48b6b82ffe08e59b130cd38405aa17ca961 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Sun, 6 Feb 2011 20:16:49 +0000 Subject: [PATCH] Remove a virtual inheritance case that clang can devirtualize fully now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124989 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/README.txt | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/lib/Target/README.txt b/lib/Target/README.txt index c0a2b760de7..6b4e33ea34b 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -1866,27 +1866,6 @@ bb3: ; preds = %entry } //===---------------------------------------------------------------------===// -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; }