]> code.ossystems Code Review - openembedded-core.git/blob
78202f0f84e60d489c86488aaf6556196fab6381
[openembedded-core.git] /
1 From 2e8f32d39576b002280e29079ad6cfc55c852276 Mon Sep 17 00:00:00 2001
2 From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
3 Date: Tue, 26 Apr 2011 12:59:22 +0000
4 Subject: [PATCH 181/200] 2011-04-26  Richard Guenther  <rguenther@suse.de>
5
6         PR tree-optimization/48731
7         * ipa-inline.c (cgraph_flatten): Test if function is inlinable.
8
9         * gcc.dg/torture/pr48731.c: New testcase.
10
11
12 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172963 138bc75d-0d04-0410-961f-82ee72b054a4
13
14 index b3c9215..cbda4be 100644
15 --- a/gcc/ipa-inline.c
16 +++ b/gcc/ipa-inline.c
17 @@ -1337,6 +1337,9 @@ cgraph_flatten (struct cgraph_node *node)
18           continue;
19         }
20  
21 +      if (!e->callee->local.inlinable)
22 +       continue;
23 +
24        /* We've hit cycle?  It is time to give up.  */
25        if (e->callee->aux)
26         {
27 new file mode 100644
28 index 0000000..74b77f6
29 --- /dev/null
30 +++ b/gcc/testsuite/gcc.dg/torture/pr48731.c
31 @@ -0,0 +1,24 @@
32 +/* { dg-do compile } */
33 +
34 +#include <stdarg.h>
35 +
36 +int blah(int a, ...)
37 +{
38 +  va_list va;
39 +  va_start(va,a);
40 +  if (a == 0)
41 +    return -1;
42 +  else 
43 +    {
44 +      int i;
45 +      for (i = 0; i < a; i++)
46 +       va_arg(va,int);
47 +      return va_arg(va,int);
48 +    }
49 +}
50 +
51 +__attribute((flatten))
52 +int blah2(int b, int c)
53 +{
54 +  return blah(2, b, c);
55 +}
56 -- 
57 1.7.0.4
58