diff options
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/g++.dg/ipa/ivinline-4.C')
-rw-r--r-- | gcc-4.8.1/gcc/testsuite/g++.dg/ipa/ivinline-4.C | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/ipa/ivinline-4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/ipa/ivinline-4.C deleted file mode 100644 index f5b8f8e5d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/ipa/ivinline-4.C +++ /dev/null @@ -1,70 +0,0 @@ -/* Verify that simple virtual calls are inlined even without early - inlining, even when a typecast to an ancestor is involved along the - way. */ -/* { dg-do run { target nonpic } } */ -/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp" } */ - -extern "C" void abort (void); - -class A -{ -public: - int data; - virtual int foo (int i); -}; - -class B : public A -{ -public: - virtual int foo (int i); -}; - -class C : public A -{ -public: - virtual int foo (int i); -}; - -int A::foo (int i) -{ - return i + 1; -} - -int B::foo (int i) -{ - return i + 2; -} - -int C::foo (int i) -{ - return i + 3; -} - -int __attribute__ ((noinline,noclone)) get_input(void) -{ - return 1; -} - -static int middleman_1 (class A *obj, int i) -{ - return obj->foo (i); -} - -static int middleman_2 (class B *obj, int i) -{ - return middleman_1 (obj, i); -} - -int main (int argc, char *argv[]) -{ - class B b; - int i; - - for (i = 0; i < get_input (); i++) - if (middleman_2 (&b, get_input ()) != 3) - abort (); - return 0; -} - -/* { dg-final { scan-ipa-dump "B::foo\[^\\n\]*inline copy in int main" "inline" } } */ -/* { dg-final { cleanup-ipa-dump "inline" } } */ |