diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2990487974..88a4b66522 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2010-07-27 Tom Tromey + + * gdb.opt/inline-cmds.c (ATTR): New define. + (func1): Use it. + (func2): Likewise. + (func3): Likewise. + (outer_inline1): Likewise. + (outer_inline2): Likewise. + * gdb.opt/inline-bt.c (ATTR): New define. + (func1): Use it. + (func2): Likewise. + * gdb.opt/inline-locals.c (ATTR): New define. + (func1): Use it. + (func2): Likewise. + 2010-07-27 Tom Tromey * gdb.stabs/gdb11479.c (hack): New function. diff --git a/gdb/testsuite/gdb.opt/inline-bt.c b/gdb/testsuite/gdb.opt/inline-bt.c index 476421de4d..45933d6e4f 100644 --- a/gdb/testsuite/gdb.opt/inline-bt.c +++ b/gdb/testsuite/gdb.opt/inline-bt.c @@ -13,18 +13,27 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* This is only ever run if it is compiled with a new-enough GCC, but + we don't want the compilation to fail if compiled by some other + compiler. */ +#ifdef __GNUC__ +#define ATTR __attribute__((always_inline)) +#else +#define ATTR +#endif + int x, y; volatile int result; void bar(void); -inline int func1(void) +inline ATTR int func1(void) { bar (); return x * y; } -inline int func2(void) +inline ATTR int func2(void) { return x * func1 (); } diff --git a/gdb/testsuite/gdb.opt/inline-bt.exp b/gdb/testsuite/gdb.opt/inline-bt.exp index 92f1f8aeb4..a3e1898c08 100644 --- a/gdb/testsuite/gdb.opt/inline-bt.exp +++ b/gdb/testsuite/gdb.opt/inline-bt.exp @@ -22,7 +22,7 @@ set sources [list ${fullsrcfile} ${fullsrcfile2}] set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile ${sources} ${binfile} \ - executable {debug optimize=-O2}] != "" } { + executable {debug optimize=-O2 additional_flags=-Winline}] != "" } { untested inline-bt.exp return -1 } diff --git a/gdb/testsuite/gdb.opt/inline-cmds.c b/gdb/testsuite/gdb.opt/inline-cmds.c index 0bdede9e84..f877532638 100644 --- a/gdb/testsuite/gdb.opt/inline-cmds.c +++ b/gdb/testsuite/gdb.opt/inline-cmds.c @@ -13,6 +13,15 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* This is only ever run if it is compiled with a new-enough GCC, but + we don't want the compilation to fail if compiled by some other + compiler. */ +#ifdef __GNUC__ +#define ATTR __attribute__((always_inline)) +#else +#define ATTR +#endif + int x, y; volatile int result; @@ -20,28 +29,28 @@ void bar(void); void marker(void); void noinline(void); -inline int func1(void) +inline ATTR int func1(void) { bar (); return x * y; } -inline int func2(void) +inline ATTR int func2(void) { return x * func1 (); } -inline void func3(void) +inline ATTR void func3(void) { bar (); } -inline void outer_inline1(void) +inline ATTR void outer_inline1(void) { noinline (); } -inline void outer_inline2(void) +inline ATTR void outer_inline2(void) { outer_inline1 (); } diff --git a/gdb/testsuite/gdb.opt/inline-locals.c b/gdb/testsuite/gdb.opt/inline-locals.c index b3028cb7e1..2d316817db 100644 --- a/gdb/testsuite/gdb.opt/inline-locals.c +++ b/gdb/testsuite/gdb.opt/inline-locals.c @@ -13,13 +13,22 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* This is only ever run if it is compiled with a new-enough GCC, but + we don't want the compilation to fail if compiled by some other + compiler. */ +#ifdef __GNUC__ +#define ATTR __attribute__((always_inline)) +#else +#define ATTR +#endif + int x, y; volatile int result; volatile int *array_p; void bar(void); -inline int func1(int arg1) +inline ATTR int func1(int arg1) { int array[64]; array_p = array; @@ -29,7 +38,7 @@ inline int func1(int arg1) return x * y + array_p[0] * arg1; } -inline int func2(int arg2) +inline ATTR int func2(int arg2) { return x * func1 (arg2); }