aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2006-11-08 17:31:11 +0000
committerNathan Sidwell <nathan@codesourcery.com>2006-11-08 17:31:11 +0000
commitdbe287f54e69959859d1a5697aeab8cda328f749 (patch)
tree4f7c05cf77fb6c67a0b4a225941a8f178eedefb4 /gcc/testsuite
parent1ccc976ae378941ec25231c6bcefa793f7f41ee2 (diff)
* config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Define. (M68K_STATIC_CHAIN_REG_NAME): New. * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New. (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM. (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME. * config/m68k/m68k.c (m68k_init_pic): New, broken out of ... (m68k_output_function_prologue): ... here. Use it. (m68k_output_mi_thunk): Initialize scratch PIC register if needed. Use STATIC_CHAIN_REGNUM & M68K_STATIC_CHAIN_REG_NAME. gcc/testsuite/ * gcc.c-torture/execute/nestfunc-7.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@118592 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c b/gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c
new file mode 100644
index 00000000000..04b0cb8dedd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c
@@ -0,0 +1,44 @@
+struct A
+{
+ int one;
+ int two;
+ int three;
+ int four;
+ int five;
+ int six;
+};
+
+static int test (void)
+{
+ int base;
+
+ struct A Foo (void)
+ {
+ struct A a;
+
+ a.one = base + 1;
+ a.two = base + 2;
+ a.three = base + 3;
+ a.four = base + 4;
+ a.five = base + 5;
+ a.six = base + 6;
+
+ return a;
+ }
+
+ base = 10;
+ struct A a = Foo ();
+
+ return (a.one == 11
+ && a.two == 12
+ && a.three == 13
+ && a.four == 14
+ && a.five == 15
+ && a.six == 16);
+}
+
+int main (void)
+{
+ return !test ();
+}
+