Patchwork [testsuite] : Avoid "error: inlining failed in call to always_inline" with -fpic

login
register
mail settings
Submitter Uros Bizjak
Date April 10, 2013, 5:13 p.m.
Message ID <CAFULd4b4A-wW7Dvkr868DSV6SVeN=-K9YRz=1QeDfFBUB8MUEA@mail.gmail.com>
Download mbox | patch
Permalink /patch/235433/
State New
Headers show

Comments

Uros Bizjak - April 10, 2013, 5:13 p.m.
Hello!

Attached testsuite patch fixes:

pr33992.c: In function ‘do_test’:
pr33992.c:11:1: error: inlining failed in call to always_inline ‘foo’:
function body can be overwritten at link time
pr33992.c:28:9: error: called from here
     foo (r);
         ^

errors through gcc and g++ testsuite when tested with -fpic.

2013-04-10  Uros Bizjak  <ubizjak@gmail.com>

    * g++.dg/ipa/devirt-c-7.C: Require nonpic effective target.
    * gcc.c-torture/execute/pr33992.c (foo): Declare as static void.
    * gcc.dg/uninit-pred-5_a.c (foo): Ditto.
    * gcc.dg/uninit-pred-5_b.c (foo): Ditto.

OK for mainline and release branches?

Uros.
Uros Bizjak - April 15, 2013, 9:18 a.m.
On Wed, Apr 10, 2013 at 7:13 PM, Uros Bizjak <ubizjak@gmail.com> wrote:

> Attached testsuite patch fixes:
>
> pr33992.c: In function ‘do_test’:
> pr33992.c:11:1: error: inlining failed in call to always_inline ‘foo’:
> function body can be overwritten at link time
> pr33992.c:28:9: error: called from here
>      foo (r);
>          ^
>
> errors through gcc and g++ testsuite when tested with -fpic.
>
> 2013-04-10  Uros Bizjak  <ubizjak@gmail.com>
>
>     * g++.dg/ipa/devirt-c-7.C: Require nonpic effective target.
>     * gcc.c-torture/execute/pr33992.c (foo): Declare as static void.
>     * gcc.dg/uninit-pred-5_a.c (foo): Ditto.
>     * gcc.dg/uninit-pred-5_b.c (foo): Ditto.
>
> OK for mainline and release branches?

I would like to proceed with this fairly obvious issue, so If there
are no objections, I plan to commit the patch tomorrow.

Thanks,
Uros.

Patch

Index: g++.dg/ipa/devirt-c-7.C
===================================================================
--- g++.dg/ipa/devirt-c-7.C	(revision 197646)
+++ g++.dg/ipa/devirt-c-7.C	(working copy)
@@ -1,6 +1,7 @@ 
 /* Verify that ipa-cp will not get confused by placement new constructing an
    object within another one when looking for dynamic type change .  */
 /* { dg-do run } */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O3 -Wno-attributes"  } */
 
 extern "C" void abort (void);
Index: gcc.c-torture/execute/pr33992.c
===================================================================
--- gcc.c-torture/execute/pr33992.c	(revision 197646)
+++ gcc.c-torture/execute/pr33992.c	(working copy)
@@ -7,7 +7,7 @@ 
     abort ();
 }
 
-void __attribute__((always_inline))
+static void __attribute__((always_inline))
 foo (unsigned long long *r)
 {
   int i;
Index: gcc.dg/uninit-pred-5_a.c
===================================================================
--- gcc.dg/uninit-pred-5_a.c	(revision 197646)
+++ gcc.dg/uninit-pred-5_a.c	(working copy)
@@ -6,8 +6,9 @@ 
 int blah(int);
 void t(int);
 
+static int
 __attribute__((always_inline)) 
-int foo (int n, int* v, int r)
+foo (int n, int* v, int r)
 {
   int flag = 0;
   if (r > n)
Index: gcc.dg/uninit-pred-5_b.c
===================================================================
--- gcc.dg/uninit-pred-5_b.c	(revision 197646)
+++ gcc.dg/uninit-pred-5_b.c	(working copy)
@@ -6,8 +6,9 @@ 
 int blah(int);
 void t(int);
 
+static int
 __attribute__((always_inline)) 
-int foo (int n, int* v, int r)
+foo (int n, int* v, int r)
 {
   int flag = 0;
   if (r > n)