summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-23 07:00:35 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-23 07:00:35 +0000
commit813491d0029a21981f65785cacf0f4229315df5f (patch)
tree038dd7e767cab757a10ca9400a1952ae841999ce /gcc/testsuite
parentf4618e1c2c649db169baee64b4791fe40205ca7c (diff)
downloadgcc-813491d0029a21981f65785cacf0f4229315df5f.tar.gz
2009-02-23 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r144379 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@144380 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog116
-rw-r--r--gcc/testsuite/g++.dg/abi/arm_va_list.C14
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-1.h11
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-1a.C12
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-1b.C15
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-2.h12
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-2a.C12
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-2b.C15
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-3.h11
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-3a.C12
-rw-r--r--gcc/testsuite/g++.dg/abi/pr39188-3b.C15
-rw-r--r--gcc/testsuite/g++.dg/bprob/bprob.exp2
-rw-r--r--gcc/testsuite/g++.dg/compat/struct-layout-1.exp3
-rw-r--r--gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C1
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/visibility-11.C18
-rw-r--r--gcc/testsuite/g++.dg/other/stdarg1.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/dtor15.C16
-rw-r--r--gcc/testsuite/g++.dg/tree-prof/tree-prof.exp3
-rw-r--r--gcc/testsuite/g++.dg/vect/vect.exp2
-rw-r--r--gcc/testsuite/g++.dg/warn/miss-format-1.C1
-rw-r--r--gcc/testsuite/g++.dg/warn/miss-format-3.C1
-rw-r--r--gcc/testsuite/g++.dg/warn/miss-format-4.C1
-rw-r--r--gcc/testsuite/g++.dg/warn/miss-format-5.C1
-rw-r--r--gcc/testsuite/g++.dg/warn/miss-format-6.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/vaarg2.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/vaarg3.C7
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/vaarg4.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/builtin.C1
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20090219-1.c29
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/call-trap-1.c26
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/execute.exp2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr39228.c36
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr39228.x10
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr39240.c105
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c36
-rw-r--r--gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp2
-rw-r--r--gcc/testsuite/gcc.dg/call-diag-1.c9
-rw-r--r--gcc/testsuite/gcc.dg/compat/struct-layout-1.exp2
-rw-r--r--gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/include4.c14
-rw-r--r--gcc/testsuite/gcc.dg/pch/pch.exp2
-rw-r--r--gcc/testsuite/gcc.dg/struct/struct-reorg.exp2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39074-2.c34
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39074-3.c25
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39074.c31
-rw-r--r--gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp3
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp3
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect.exp3
-rw-r--r--gcc/testsuite/gcc.dg/visibility-20.c18
-rw-r--r--gcc/testsuite/gcc.misc-tests/arm-isr.exp2
-rw-r--r--gcc/testsuite/gcc.misc-tests/bprob.exp2
-rw-r--r--gcc/testsuite/gcc.misc-tests/dectest.exp2
-rw-r--r--gcc/testsuite/gcc.misc-tests/i386-prefetch.exp2
-rw-r--r--gcc/testsuite/gcc.misc-tests/linkage.exp3
-rw-r--r--gcc/testsuite/gcc.target/arm/va_list.c25
-rw-r--r--gcc/testsuite/gcc.target/i386/abi-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/abi-2.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/amd64-abi-3.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/i386.exp2
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-1.c8
-rw-r--r--gcc/testsuite/gcc.target/mips/dmult-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips.exp79
-rw-r--r--gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp2
-rw-r--r--gcc/testsuite/gcc.test-framework/test-framework.awk3
-rw-r--r--gcc/testsuite/gcc.test-framework/test-framework.exp3
-rw-r--r--gcc/testsuite/gfortran.dg/bound_7.f90223
-rw-r--r--gcc/testsuite/gfortran.dg/bound_simplification_2.f909
-rw-r--r--gcc/testsuite/gfortran.dg/dg.exp2
-rw-r--r--gcc/testsuite/gfortran.dg/vect/vect.exp2
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/compile.exp2
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/execute.exp2
-rw-r--r--gcc/testsuite/lib/c-compat.exp3
-rw-r--r--gcc/testsuite/lib/c-torture.exp3
-rw-r--r--gcc/testsuite/lib/compat.exp3
-rw-r--r--gcc/testsuite/lib/dg-pch.exp2
-rw-r--r--gcc/testsuite/lib/fortran-torture.exp2
-rw-r--r--gcc/testsuite/lib/g++.exp2
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp2
-rw-r--r--gcc/testsuite/lib/gcc.exp4
-rw-r--r--gcc/testsuite/lib/gfortran.exp3
-rw-r--r--gcc/testsuite/lib/gnat.exp2
-rw-r--r--gcc/testsuite/lib/obj-c++.exp2
-rw-r--r--gcc/testsuite/lib/objc-torture.exp3
-rw-r--r--gcc/testsuite/lib/objc.exp2
-rw-r--r--gcc/testsuite/lib/profopt.exp2
-rw-r--r--gcc/testsuite/lib/prune.exp2
-rw-r--r--gcc/testsuite/lib/scanasm.exp2
-rw-r--r--gcc/testsuite/lib/scandump.exp3
-rw-r--r--gcc/testsuite/lib/target-supports-dg.exp2
-rw-r--r--gcc/testsuite/lib/target-supports.exp13
-rw-r--r--gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp2
-rw-r--r--gcc/testsuite/objc.dg/pch/pch.exp2
-rw-r--r--gcc/testsuite/objc/compile/compile.exp3
-rw-r--r--gcc/testsuite/objc/execute/exceptions/exceptions.exp3
-rw-r--r--gcc/testsuite/objc/execute/execute.exp3
98 files changed, 1074 insertions, 90 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bd0c95cc6ba..9c63dbf6448 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,110 @@
+2008-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/38914
+ * bound_simplification_2.f90: New test case.
+ * bound_7.f90: New test case.
+
+2009-02-21 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/cpp/include4.c: New test.
+
+2008-02-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/39256
+ * gcc.target/i386/abi-2.c: New.
+
+2009-02-21 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * gcc.c-torture/execute/pr39228.x: New.
+
+2009-02-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/abi-1.c: Use scan-assembler-times "..." 1 instead of
+ scan-assembler to check for xmm0 register.
+
+2009-02-20 Mark Mitchell <mark@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/arm/va_list.c: New test.
+ * g++.dg/abi/arm_va_list.C: Likewise.
+ * lib/target-supports.exp (check_effective_target_arm_eabi): New
+ function.
+ * g++.dg/cpp0x/temp-va-arg-bug.C, g++.dg/other/stdarg1.C,
+ g++.dg/warn/miss-format-1.C, g++.dg/warn/miss-format-3.C,
+ g++.dg/warn/miss-format-4.C, g++.dg/warn/miss-format-5.C,
+ g++.dg/warn/miss-format-6.C, g++.old-deja/g++.other/vaarg2.C,
+ g++.old-deja/g++.other/vaarg3.C, g++.old-deja/g++.other/vaarg4.C,
+ g++.old-deja/g++.pt/builtin.C: Use -Wno-abi on ARM EABI targets.
+
+2009-02-20 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR testsuite/38164
+ * gcc.target/i386/amd64-abi-3.c: Add -fomit-frame-pointer
+ to dg-options.
+
+2009-02-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39240
+ * gcc.c-torture/execute/pr39240.c: New test.
+
+2009-02-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/39225
+ * g++.dg/parse/dtor15.C: New test.
+
+2009-02-19 Kazu Hirata <kazu@codesourcery.com>
+
+ * gcc.c-torture/execute/20090219-1.c: New.
+
+2009-02-19 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.target/mips/mips.exp: Comment !CPU in the isa* pseudo-options.
+ (mips-dg-options): When matching isa* pseudo-options make
+ 'value' optional and accept ! entries. Use $spec instead of
+ $isa_spec in the isa pseudo-option error message. Only
+ perform the ISA-range check when 'value' is set. If arch is
+ matching any CPU in the ! entries switch to its generic ISA.
+ * gcc.target/mips/branch-1.c: Pass isa=!octeon.
+ * gcc.target/mips/dmult-1.c: Pass isa=64!octeon rather than -mips64.
+
+2009-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39175
+ * gcc.dg/visibility-20.c: New test.
+ * g++.dg/ext/visibility/visibility-11.C: New test.
+
+2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c++/39188
+ * g++.dg/abi/pr39188-1a.C: New.
+ * g++.dg/abi/pr39188-1b.C: Likewise.
+ * g++.dg/abi/pr39188-1.h: Likewise.
+ * g++.dg/abi/pr39188-2a.C: Likewise.
+ * g++.dg/abi/pr39188-2b.C: Likewise.
+ * g++.dg/abi/pr39188-2.h: Likewise.
+ * g++.dg/abi/pr39188-3a.C: Likewise.
+ * g++.dg/abi/pr39188-3b.C: Likewise.
+ * g++.dg/abi/pr39188-3.h: Likewise.
+
+2009-02-19 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/38483
+ * gcc.c-torture/execute/call-trap-1.c,
+ gcc.c-torture/execute/va-arg-trap-1.c, gcc.dg/call-diag-1.c: New
+ tests.
+
+2009-02-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/39228
+ * gcc.c-torture/execute/pr39228.c: New test.
+
+2009-02-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39074
+ * gcc.dg/torture/pr39074.c: New testcase.
+ * gcc.dg/torture/pr39074-2.c: Likewise.
+ * gcc.dg/torture/pr39074-3.c: Likewise.
+
2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
PR c++/39219
@@ -14,6 +121,9 @@
2009-02-18 Jason Merrill <jason@redhat.com>
+ PR c++/38880
+ * g++.dg/init/const7.C: Remove XFAIL.
+
PR target/39179
* g++.dg/opt/const6.C: New test.
@@ -266,8 +376,7 @@
2009-02-09 H.J. Lu <hongjiu.lu@intel.com>
- * gcc.target/x86_64/abi/abi-x86_64.exp: Use glob instead of
- find.
+ * gcc.target/x86_64/abi/abi-x86_64.exp: Use glob instead of find.
2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
@@ -348,8 +457,7 @@
* gcc.target/i386/i386.exp (check_effective_target_vpclmul): New.
* gcc.target/i386/pclmulqdq.c (CHECK_H): New.
- (TEST): Likewise.
- Include CHECK_H instead of "pclmul-check.h".
+ (TEST): Likewise. Include CHECK_H instead of "pclmul-check.h".
(pclmul_test): Renamed to ...
(TEST): This.
diff --git a/gcc/testsuite/g++.dg/abi/arm_va_list.C b/gcc/testsuite/g++.dg/abi/arm_va_list.C
new file mode 100644
index 00000000000..45a426a4f38
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/arm_va_list.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+// { dg-options "-Wno-abi" }
+// { dg-require-effective-target arm_eabi }
+
+// AAPCS \S 7.1.4 requires that va_list be a typedef for "struct
+// __va_list". The mangling is as if it were "std::__va_list".
+// #include <stdarg.h>
+typedef __builtin_va_list va_list;
+
+// { dg-final { scan-assembler "\n_Z1fPSt9__va_list:" } }
+void f(va_list*) {}
+
+// { dg-final { scan-assembler "\n_Z1gSt9__va_listS_:" } }
+void g(va_list, va_list) {}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-1.h b/gcc/testsuite/g++.dg/abi/pr39188-1.h
new file mode 100644
index 00000000000..ece67daae1e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-1.h
@@ -0,0 +1,11 @@
+inline int
+f (int x)
+{
+ static union
+ {
+ int i;
+ };
+ int j = i;
+ i = x;
+ return j;
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-1a.C b/gcc/testsuite/g++.dg/abi/pr39188-1a.C
new file mode 100644
index 00000000000..eb646696def
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-1a.C
@@ -0,0 +1,12 @@
+// PR c++/39188
+// { dg-do run }
+// { dg-options "-O2" }
+// { dg-additional-sources "pr39188-1b.C" }
+
+#include "pr39188-1.h"
+
+int
+x (int i)
+{
+ return f (i);
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-1b.C b/gcc/testsuite/g++.dg/abi/pr39188-1b.C
new file mode 100644
index 00000000000..71c99263787
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-1b.C
@@ -0,0 +1,15 @@
+#include "pr39188-1.h"
+
+extern "C" void abort ();
+
+extern int x (int);
+
+int
+main (void)
+{
+ if (x (1) != 0)
+ abort ();
+ if (f (1) != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-2.h b/gcc/testsuite/g++.dg/abi/pr39188-2.h
new file mode 100644
index 00000000000..6ff5f49dbf3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-2.h
@@ -0,0 +1,12 @@
+template<typename T>
+T
+f (T x)
+{
+ static union
+ {
+ T i;
+ };
+ T j = i;
+ i = x;
+ return j;
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-2a.C b/gcc/testsuite/g++.dg/abi/pr39188-2a.C
new file mode 100644
index 00000000000..071b585f4c0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-2a.C
@@ -0,0 +1,12 @@
+// PR c++/39188
+// { dg-do run }
+// { dg-options "-O2" }
+// { dg-additional-sources "pr39188-2b.C" }
+
+#include "pr39188-2.h"
+
+int
+x (int i)
+{
+ return f<int> (i);
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-2b.C b/gcc/testsuite/g++.dg/abi/pr39188-2b.C
new file mode 100644
index 00000000000..f91367ba29d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-2b.C
@@ -0,0 +1,15 @@
+#include "pr39188-2.h"
+
+extern "C" void abort ();
+
+extern int x (int);
+
+int
+main (void)
+{
+ if (x (1) != 0)
+ abort ();
+ if (f<int> (1) != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-3.h b/gcc/testsuite/g++.dg/abi/pr39188-3.h
new file mode 100644
index 00000000000..e0c9f619c2e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-3.h
@@ -0,0 +1,11 @@
+static int
+f (int x)
+{
+ static union
+ {
+ int i;
+ };
+ int j = i;
+ i = x;
+ return j;
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-3a.C b/gcc/testsuite/g++.dg/abi/pr39188-3a.C
new file mode 100644
index 00000000000..5596d12419e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-3a.C
@@ -0,0 +1,12 @@
+// PR c++/39188
+// { dg-do run }
+// { dg-options "-O2" }
+// { dg-additional-sources "pr39188-3b.C" }
+
+#include "pr39188-3.h"
+
+int
+x (int i)
+{
+ return f (i);
+}
diff --git a/gcc/testsuite/g++.dg/abi/pr39188-3b.C b/gcc/testsuite/g++.dg/abi/pr39188-3b.C
new file mode 100644
index 00000000000..84db157a71a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/pr39188-3b.C
@@ -0,0 +1,15 @@
+#include "pr39188-3.h"
+
+extern "C" void abort ();
+
+extern int x (int);
+
+int
+main (void)
+{
+ if (x (1) != 0)
+ abort ();
+ if (f (1) != 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/bprob/bprob.exp b/gcc/testsuite/g++.dg/bprob/bprob.exp
index a2f011f69ee..8a46cf7beef 100644
--- a/gcc/testsuite/g++.dg/bprob/bprob.exp
+++ b/gcc/testsuite/g++.dg/bprob/bprob.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2002, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/g++.dg/compat/struct-layout-1.exp b/gcc/testsuite/g++.dg/compat/struct-layout-1.exp
index b928e563960..1ebb83be541 100644
--- a/gcc/testsuite/g++.dg/compat/struct-layout-1.exp
+++ b/gcc/testsuite/g++.dg/compat/struct-layout-1.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c b/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
index 93700d20feb..b6846a918a4 100644
--- a/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
+++ b/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
@@ -1,5 +1,5 @@
/* Structure layout test generator.
- Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
diff --git a/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C b/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C
index 5314b24d1e0..085915f907e 100644
--- a/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C
+++ b/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C
@@ -1,4 +1,5 @@
// { dg-options "--std=c++0x" }
+// { dg-options "-Wno-abi --std=c++0x" { target arm_eabi } }
#include <stdarg.h>
struct S { };
diff --git a/gcc/testsuite/g++.dg/ext/visibility/visibility-11.C b/gcc/testsuite/g++.dg/ext/visibility/visibility-11.C
new file mode 100644
index 00000000000..78f40c62b8b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/visibility/visibility-11.C
@@ -0,0 +1,18 @@
+// PR target/39175
+// { dg-do compile }
+// { dg-require-visibility "" }
+// { dg-options "-O2 -fvisibility=hidden -fpic" { target fpic } }
+
+__attribute__((noinline)) int
+foo (int x)
+{
+ return x;
+}
+
+int foo (int x);
+
+int
+bar (int x)
+{
+ return foo (x);
+}
diff --git a/gcc/testsuite/g++.dg/other/stdarg1.C b/gcc/testsuite/g++.dg/other/stdarg1.C
index e005199d37a..1ac9e8fb229 100644
--- a/gcc/testsuite/g++.dg/other/stdarg1.C
+++ b/gcc/testsuite/g++.dg/other/stdarg1.C
@@ -1,5 +1,6 @@
// Test stdarg function with anonymous argument
// { dg-do run }
+// { dg-options "-Wno-abi" { target arm_eabi } }
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.dg/parse/dtor15.C b/gcc/testsuite/g++.dg/parse/dtor15.C
new file mode 100644
index 00000000000..ae85a702a40
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/dtor15.C
@@ -0,0 +1,16 @@
+// PR c++/39225
+
+template <class T>
+class A
+{
+public:
+ A() {}
+ ~B() {} // { dg-error "~B" }
+};
+
+int main()
+{
+ A<int> *a = new A<int>;
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp b/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
index 930df4f1acc..b5a2f65b850 100644
--- a/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
+++ b/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2001, 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2004, 2005, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/g++.dg/vect/vect.exp b/gcc/testsuite/g++.dg/vect/vect.exp
index f3db0368ef7..0688a70339c 100644
--- a/gcc/testsuite/g++.dg/vect/vect.exp
+++ b/gcc/testsuite/g++.dg/vect/vect.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-1.C b/gcc/testsuite/g++.dg/warn/miss-format-1.C
index faa3583670d..9d99cdbfff0 100644
--- a/gcc/testsuite/g++.dg/warn/miss-format-1.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-1.C
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
/* { dg-do compile } */
/* { dg-options "-Wmissing-format-attribute" } */
+/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
/* VxWorks does not provide vscanf, either in kernel or RTP mode. */
/* { dg-error "not declared" "" { target *-*-solaris2.[7-8] *-*-vxworks* } 25 } */
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-3.C b/gcc/testsuite/g++.dg/warn/miss-format-3.C
index 0f61400b1b7..d131d151175 100644
--- a/gcc/testsuite/g++.dg/warn/miss-format-3.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-3.C
@@ -2,6 +2,7 @@
/* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
/* { dg-do compile } */
/* { dg-options "-Wmissing-format-attribute" } */
+/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-4.C b/gcc/testsuite/g++.dg/warn/miss-format-4.C
index 1a89abd5a39..73db0d50baa 100644
--- a/gcc/testsuite/g++.dg/warn/miss-format-4.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-4.C
@@ -2,6 +2,7 @@
/* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
/* { dg-do compile } */
/* { dg-options "-Wmissing-format-attribute" } */
+/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-5.C b/gcc/testsuite/g++.dg/warn/miss-format-5.C
index 452e812aeb6..cbc27b5e572 100644
--- a/gcc/testsuite/g++.dg/warn/miss-format-5.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-5.C
@@ -2,6 +2,7 @@
/* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
/* { dg-do compile } */
/* { dg-options "-Wmissing-format-attribute" } */
+/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-6.C b/gcc/testsuite/g++.dg/warn/miss-format-6.C
index f38e4ca128e..f78dbdfa1fd 100644
--- a/gcc/testsuite/g++.dg/warn/miss-format-6.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-6.C
@@ -2,6 +2,7 @@
/* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
/* { dg-do compile } */
/* { dg-options "-Wmissing-format-attribute" } */
+/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.old-deja/g++.other/vaarg2.C b/gcc/testsuite/g++.old-deja/g++.other/vaarg2.C
index 2992a25a094..278f5376f43 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/vaarg2.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/vaarg2.C
@@ -1,4 +1,5 @@
// { dg-do run }
+// { dg-options "-Wno-abi" { target arm_eabi } }
// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 4 Oct 1999 <nathan@acm.org>
diff --git a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
index 8ed6df78632..f852b08ce5a 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
@@ -1,4 +1,5 @@
// { dg-do assemble }
+// { dg-options "-Wno-abi" { target arm_eabi } }
// Copyright (C) 1999 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 4 Oct 1999 <nathan@acm.org>
@@ -21,10 +22,10 @@ void fn1(va_list args)
const Z &z2 = va_arg (args, Z); // { dg-error "incomplete" }
va_arg (args, char); // { dg-warning "promote" }
- // { dg-message "should pass" "pass" { target *-*-* } 23 }
- // { dg-message "abort" "abort" { target *-*-* } 23 }
+ // { dg-message "should pass" "pass" { target *-*-* } 24 }
+ // { dg-message "abort" "abort" { target *-*-* } 24 }
va_arg (args, int []); // { dg-error "array with unspecified bounds" } promote
va_arg (args, int ()); // { dg-warning "non-POD" } promote
va_arg (args, bool); // { dg-warning "promote" "promote" }
- // { dg-message "abort" "abort" { target *-*-* } 28 }
+ // { dg-message "abort" "abort" { target *-*-* } 29 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/vaarg4.C b/gcc/testsuite/g++.old-deja/g++.other/vaarg4.C
index 3f08b0a4221..9ea165bda74 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/vaarg4.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/vaarg4.C
@@ -1,4 +1,5 @@
// { dg-do assemble }
+// { dg-options "-Wno-abi" { target arm_eabi } }
// Bug 845. We were treating __builtin_va_arg as a unary expr, not a primary,
// and hence getting parse errors.
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/builtin.C b/gcc/testsuite/g++.old-deja/g++.pt/builtin.C
index cd79d8a375f..0a2e241de00 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/builtin.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/builtin.C
@@ -1,4 +1,5 @@
// { dg-do assemble }
+// { dg-options "-Wno-abi" { target arm_eabi } }
// Bug: Checking whether A depends on template parms, we crash because
// __builtin_va_list lacks TYPE_LANG_SPECIFIC.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20090219-1.c b/gcc/testsuite/gcc.c-torture/execute/20090219-1.c
new file mode 100644
index 00000000000..a5f973f6865
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20090219-1.c
@@ -0,0 +1,29 @@
+/* On ARM, BAR used to get a bogus number in E due to stack
+ misalignment. */
+
+extern void abort (void);
+extern void exit (int);
+
+void
+foo (void)
+{
+ int f = 0;
+
+ void bar (int a, int b, int c, int d, int e)
+ {
+ if (e != 0)
+ {
+ f = 1;
+ abort ();
+ }
+ }
+
+ bar (0, 0, 0, 0, 0);
+}
+
+int
+main (void)
+{
+ foo ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c b/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c
new file mode 100644
index 00000000000..aa226e745d6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c
@@ -0,0 +1,26 @@
+/* Undefined behavior from a call to a function cast to a different
+ type does not appear until after the function designator and
+ arguments have been evaluated. PR 38483. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+
+extern void exit (int);
+extern void abort (void);
+
+int
+foo (void)
+{
+ exit (0);
+ return 0;
+}
+
+void
+bar (void)
+{
+}
+
+int
+main (void)
+{
+ ((long (*)(int))bar) (foo ());
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/execute.exp b/gcc/testsuite/gcc.c-torture/execute/execute.exp
index f0e379f3849..9b6bccd0c31 100644
--- a/gcc/testsuite/gcc.c-torture/execute/execute.exp
+++ b/gcc/testsuite/gcc.c-torture/execute/execute.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007
+# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007, 2008
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp b/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
index 2541d402c4c..048e65f6ed3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
@@ -1,6 +1,6 @@
#
# Expect driver script for GCC Regression Tests
-# Copyright (C) 1993, 1996, 2001, 2005, 2007 Free Software Foundation
+# Copyright (C) 1993, 1996, 2001, 2005, 2007, 2008 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39228.c b/gcc/testsuite/gcc.c-torture/execute/pr39228.c
new file mode 100644
index 00000000000..06d8efd1a5b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr39228.c
@@ -0,0 +1,36 @@
+extern void abort (void);
+
+static int __attribute__((always_inline)) testf (float b)
+{
+ float c = 1.01f * b;
+
+ return __builtin_isinff (c);
+}
+
+static int __attribute__((always_inline)) test (double b)
+{
+ double c = 1.01 * b;
+
+ return __builtin_isinf (c);
+}
+
+static int __attribute__((always_inline)) testl (long double b)
+{
+ long double c = 1.01L * b;
+
+ return __builtin_isinfl (c);
+}
+
+int main()
+{
+ if (testf (__FLT_MAX__) < 1)
+ abort ();
+
+ if (test (__DBL_MAX__) < 1)
+ abort ();
+
+ if (testl (__LDBL_MAX__) < 1)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39228.x b/gcc/testsuite/gcc.c-torture/execute/pr39228.x
new file mode 100644
index 00000000000..a7d8a821e53
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr39228.x
@@ -0,0 +1,10 @@
+if { [istarget "alpha*-*-*"] || [istarget "sh*-*-*"] } {
+ # alpha and SH require -mieee for this test.
+ set additional_flags "-mieee"
+}
+if [istarget "spu-*-*"] {
+ # No Inf/NaN support on SPU.
+ return 1
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39240.c b/gcc/testsuite/gcc.c-torture/execute/pr39240.c
new file mode 100644
index 00000000000..de5e2ee70a4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr39240.c
@@ -0,0 +1,105 @@
+/* PR target/39240 */
+
+extern void abort (void);
+
+__attribute__ ((noinline))
+static int foo1 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+unsigned int bar1 (int x)
+{
+ return foo1 (x + 6);
+}
+
+volatile unsigned long l1 = (unsigned int) -4;
+
+__attribute__ ((noinline))
+static short int foo2 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+unsigned short int bar2 (int x)
+{
+ return foo2 (x + 6);
+}
+
+volatile unsigned long l2 = (unsigned short int) -4;
+
+__attribute__ ((noinline))
+static signed char foo3 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+unsigned char bar3 (int x)
+{
+ return foo3 (x + 6);
+}
+
+volatile unsigned long l3 = (unsigned char) -4;
+
+__attribute__ ((noinline))
+static unsigned int foo4 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+int bar4 (int x)
+{
+ return foo4 (x + 6);
+}
+
+volatile unsigned long l4 = (int) -4;
+
+__attribute__ ((noinline))
+static unsigned short int foo5 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+short int bar5 (int x)
+{
+ return foo5 (x + 6);
+}
+
+volatile unsigned long l5 = (short int) -4;
+
+__attribute__ ((noinline))
+static unsigned char foo6 (int x)
+{
+ return x;
+}
+
+__attribute__ ((noinline))
+signed char bar6 (int x)
+{
+ return foo6 (x + 6);
+}
+
+volatile unsigned long l6 = (signed char) -4;
+
+int
+main (void)
+{
+ if (bar1 (-10) != l1)
+ abort ();
+ if (bar2 (-10) != l2)
+ abort ();
+ if (bar3 (-10) != l3)
+ abort ();
+ if (bar4 (-10) != l4)
+ abort ();
+ if (bar5 (-10) != l5)
+ abort ();
+ if (bar6 (-10) != l6)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
new file mode 100644
index 00000000000..1e1dae8e8aa
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
@@ -0,0 +1,36 @@
+/* Undefined behavior from a call to va_arg with a type other than
+ that of the argument passed (in particular, with a type such as
+ "float" that can never be the type of an argument passed through
+ "...") does not appear until after the va_list expression is
+ evaluated. PR 38483. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+
+#include <stdarg.h>
+
+extern void exit (int);
+extern void abort (void);
+
+va_list ap;
+float f;
+
+va_list *
+foo (void)
+{
+ exit (0);
+ return &ap;
+}
+
+void
+bar (int i, ...)
+{
+ va_start (ap, i);
+ f = va_arg (*foo (), float);
+ va_end (ap);
+}
+
+int
+main (void)
+{
+ bar (1, 0);
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp b/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
index dbcea137a00..4a8ebe75c5e 100644
--- a/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
+++ b/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
@@ -1,6 +1,6 @@
#
# Expect driver script for GCC Regression Tests
-# Copyright (C) 1993, 1997, 2007 Free Software Foundation
+# Copyright (C) 1993, 1997, 2007, 2008 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/call-diag-1.c b/gcc/testsuite/gcc.dg/call-diag-1.c
new file mode 100644
index 00000000000..884baa0d437
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/call-diag-1.c
@@ -0,0 +1,9 @@
+/* The warning for calling through a non-compatible type must not
+ disable the normal diagnostics from comparing the argument list
+ against the type of the called expression. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void foo (void);
+void bar (void) { ((long (*)(int))foo) (); } /* { dg-error "too few arguments to function" } */
diff --git a/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp b/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
index e003d9c80b9..fe42528d56f 100644
--- a/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
+++ b/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
index c08014768bc..2e2943dd513 100644
--- a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
+++ b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
@@ -1,5 +1,5 @@
/* Structure layout test generator.
- Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
diff --git a/gcc/testsuite/gcc.dg/cpp/include4.c b/gcc/testsuite/gcc.dg/cpp/include4.c
new file mode 100644
index 00000000000..d5e7fee881b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/include4.c
@@ -0,0 +1,14 @@
+/* Preprocessing tokens are always formed according to a greedy algorithm,
+ so "#include <stddef.h" must be interpreted as a sequence of tokens,
+ of which the "h" then gets macro expanded. Likewise the other
+ examples. */
+
+#define h h>
+#include <stddef.h
+#undef h
+
+#define foo stddef.h>
+#include <foo
+
+#include <foo /*
+> */
diff --git a/gcc/testsuite/gcc.dg/pch/pch.exp b/gcc/testsuite/gcc.dg/pch/pch.exp
index c76c37af8df..ff2b34c0970 100644
--- a/gcc/testsuite/gcc.dg/pch/pch.exp
+++ b/gcc/testsuite/gcc.dg/pch/pch.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2002, 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2002, 2003, 2007, 2009 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/struct/struct-reorg.exp b/gcc/testsuite/gcc.dg/struct/struct-reorg.exp
index 19a7f63a7dd..e6a2b7728a5 100644
--- a/gcc/testsuite/gcc.dg/struct/struct-reorg.exp
+++ b/gcc/testsuite/gcc.dg/struct/struct-reorg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/torture/pr39074-2.c b/gcc/testsuite/gcc.dg/torture/pr39074-2.c
new file mode 100644
index 00000000000..89f7ebf8cd8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr39074-2.c
@@ -0,0 +1,34 @@
+/* { dg-do run } */
+/* { dg-require-effective-target stdint_types } */
+/* { dg-options "-fdump-tree-alias" } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+
+#include <stdint.h>
+
+int i;
+uintptr_t __attribute__((noinline,const)) bar(int ***p) { return (uintptr_t)p; }
+void __attribute__((noinline))
+foo(void)
+{
+ int *y;
+ int **a = &y, **x;
+ int ***p;
+ uintptr_t b;
+ b = bar(&a);
+ p = (int ***)b;
+ x = *p;
+ *x = &i; /* *ANYTHING = &i has to make sure that y points to i. */
+ *y = 0;
+}
+extern void abort (void);
+int main()
+{
+ i = 1;
+ foo ();
+ if (i != 0)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "y.._., name memory tag: NMT..., is dereferenced, points-to vars: { i }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/pr39074-3.c b/gcc/testsuite/gcc.dg/torture/pr39074-3.c
new file mode 100644
index 00000000000..7c760482621
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr39074-3.c
@@ -0,0 +1,25 @@
+/* { dg-do run } */
+/* { dg-require-effective-target stdint_types } */
+
+#include <stdint.h>
+
+uintptr_t __attribute__((noinline,const)) bar(int ***p) { return (uintptr_t)p; }
+extern void abort (void);
+int main()
+{
+ int i, j;
+ int *y = &j;
+ int **a = &y, **x;
+ int ***p;
+ uintptr_t b;
+ b = bar(&a);
+ p = (int ***)b;
+ x = *p;
+ *x = &i;
+ i = 1;
+ *y = 0;
+ if (i != 0)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/torture/pr39074.c b/gcc/testsuite/gcc.dg/torture/pr39074.c
new file mode 100644
index 00000000000..cc37c8e08ec
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr39074.c
@@ -0,0 +1,31 @@
+/* { dg-do run } */
+/* { dg-options "-fdump-tree-alias" } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+
+int i;
+void __attribute__((noinline))
+foo(long b, long q)
+{
+ int *y;
+ int **a = &y, **x;
+ int ***p;
+ if (b)
+ p = (int ***)q;
+ else
+ p = &a;
+ x = *p;
+ *x = &i; /* *ANYTHING = &i has to make sure that y points to i. */
+ *y = 0;
+}
+extern void abort (void);
+int main()
+{
+ i = 1;
+ foo (0, 0);
+ if (i != 0)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "y.._., name memory tag: NMT..., is dereferenced, points-to vars: { i }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp b/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
index 974c68b1d6f..9da5485b0d4 100644
--- a/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
+++ b/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2001, 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2004, 2005, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp b/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
index dbf3b035d8e..3518de0590f 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1997, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp b/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
index 66587e10905..ff3650ce20e 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1997, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/vect/vect.exp b/gcc/testsuite/gcc.dg/vect/vect.exp
index f7253c66c13..d9c47f6c1c0 100644
--- a/gcc/testsuite/gcc.dg/vect/vect.exp
+++ b/gcc/testsuite/gcc.dg/vect/vect.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1997, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.dg/visibility-20.c b/gcc/testsuite/gcc.dg/visibility-20.c
new file mode 100644
index 00000000000..5fc7447f0de
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/visibility-20.c
@@ -0,0 +1,18 @@
+/* PR target/39175 */
+/* { dg-do compile } */
+/* { dg-require-visibility "" } */
+/* { dg-options "-O2 -fvisibility=hidden -fpic" { target fpic } } */
+
+__attribute__((noinline)) int
+foo (int x)
+{
+ return x;
+}
+
+int foo (int x);
+
+int
+bar (int x)
+{
+ return foo (x);
+}
diff --git a/gcc/testsuite/gcc.misc-tests/arm-isr.exp b/gcc/testsuite/gcc.misc-tests/arm-isr.exp
index f5306d6443b..8c2d3227f0a 100644
--- a/gcc/testsuite/gcc.misc-tests/arm-isr.exp
+++ b/gcc/testsuite/gcc.misc-tests/arm-isr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.misc-tests/bprob.exp b/gcc/testsuite/gcc.misc-tests/bprob.exp
index 933546e1c40..c05eced541b 100644
--- a/gcc/testsuite/gcc.misc-tests/bprob.exp
+++ b/gcc/testsuite/gcc.misc-tests/bprob.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2002, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.misc-tests/dectest.exp b/gcc/testsuite/gcc.misc-tests/dectest.exp
index 435276d8160..b86f2adec5c 100644
--- a/gcc/testsuite/gcc.misc-tests/dectest.exp
+++ b/gcc/testsuite/gcc.misc-tests/dectest.exp
@@ -1,4 +1,4 @@
-# Copyright 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
index c4c2bbccb04..e9909845c44 100644
--- a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
+++ b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
index 85aadb3daf7..a9d8114184b 100644
--- a/gcc/testsuite/gcc.misc-tests/linkage.exp
+++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1988, 90-96, 1997, 2000, 2001, 2002, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1988, 90-96, 1997, 2000, 2001, 2002, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.target/arm/va_list.c b/gcc/testsuite/gcc.target/arm/va_list.c
new file mode 100644
index 00000000000..b988a0d3365
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/va_list.c
@@ -0,0 +1,25 @@
+/* { dg-do run } */
+/* { dg-require-effective-target arm_eabi } */
+
+#include <stdarg.h>
+#include <stddef.h>
+
+/* AAPCS \S 7.1.4 requires that va_list match the structure shown
+ here */
+typedef struct my_va_list
+{
+ void *ap;
+} my_va_list;
+
+int
+main () {
+ if (sizeof (va_list) != sizeof (my_va_list))
+ return 1;
+ /* This check confirms both that "va_list" has a member named "__ap"
+ and that it is located at the correct position. */
+ if (offsetof (va_list, __ap)
+ != offsetof (my_va_list, ap))
+ return 2;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/i386/abi-1.c b/gcc/testsuite/gcc.target/i386/abi-1.c
index 032274c46fd..62b80ef4062 100644
--- a/gcc/testsuite/gcc.target/i386/abi-1.c
+++ b/gcc/testsuite/gcc.target/i386/abi-1.c
@@ -5,4 +5,4 @@
typedef double v2df __attribute__((vector_size (16)));
v2df foo (void) { return (v2df){ 1.0, 2.0 }; }
-/* { dg-final { scan-assembler "xmm0" } } */
+/* { dg-final { scan-assembler-times "xmm0" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/abi-2.c b/gcc/testsuite/gcc.target/i386/abi-2.c
new file mode 100644
index 00000000000..5ed6b4a56dd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/abi-2.c
@@ -0,0 +1,8 @@
+/* Make certain that we pass __m256i in the correct register for AVX. */
+/* { dg-do compile } */
+/* { dg-options "-O1 -mavx" } */
+
+typedef long long __m256i __attribute__ ((__vector_size__ (32)));
+__m256i foo (void) { return (__m256i){ 1, 2, 3, 4 }; }
+
+/* { dg-final { scan-assembler-times "ymm0" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-3.c b/gcc/testsuite/gcc.target/i386/amd64-abi-3.c
index 3841e6dabee..8db7f13b1ea 100644
--- a/gcc/testsuite/gcc.target/i386/amd64-abi-3.c
+++ b/gcc/testsuite/gcc.target/i386/amd64-abi-3.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target lp64 } */
-/* { dg-options "-O2 -mno-sse" } */
+/* { dg-options "-O2 -fomit-frame-pointer -mno-sse" } */
/* { dg-final { scan-assembler "subq\[\\t \]*\\\$88,\[\\t \]*%rsp" } } */
/* { dg-final { scan-assembler-not "subq\[\\t \]*\\\$216,\[\\t \]*%rsp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp
index fa470e11a66..f70c81f33fb 100644
--- a/gcc/testsuite/gcc.target/i386/i386.exp
+++ b/gcc/testsuite/gcc.target/i386/i386.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.target/mips/branch-1.c b/gcc/testsuite/gcc.target/mips/branch-1.c
index fb715362e08..b70b2640f8c 100644
--- a/gcc/testsuite/gcc.target/mips/branch-1.c
+++ b/gcc/testsuite/gcc.target/mips/branch-1.c
@@ -1,6 +1,8 @@
-/* We should implement these "if" statements using an "andi" instruction
- followed by a branch on zero. */
-/* { dg-options "-O2" } */
+/* Octeon targets should use "bbit" instructions for these "if" statements,
+ but we test for "bbit" elsewhere. On other targets, we should implement
+ the "if" statements using an "andi" instruction followed by a branch
+ on zero. */
+/* { dg-options "-O2 isa=!octeon" } */
void bar (void);
NOMIPS16 void f1 (int x) { if (x & 4) bar (); }
diff --git a/gcc/testsuite/gcc.target/mips/dmult-1.c b/gcc/testsuite/gcc.target/mips/dmult-1.c
index 61e66c20ffc..6d4120435b7 100644
--- a/gcc/testsuite/gcc.target/mips/dmult-1.c
+++ b/gcc/testsuite/gcc.target/mips/dmult-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-mips64 -mgp64" } */
+/* { dg-options "isa=64!octeon -mgp64" } */
/* { dg-final { scan-assembler "\tdmult\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tdmul\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
index c5d6089a964..7befff5a1fa 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2007, 2008, 2009 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -135,10 +135,18 @@
# the value of the __mips_isa_rev macro, or 0 if it isn't defined.
#
# For example, "isa_rev>=1" selects a MIPS32 or MIPS64 processor,
-# "isa=4" selects a MIPS IV processor, and so on. There are also
-# the following special pseudo-options:
+# "isa=4" selects a MIPS IV processor, and so on.
#
-# isa=loongson:
+# If certain processor-specific extensions are not applicable to the
+# test you can list them as !CPU in the isa or isa_rev options. For
+# example, isa=64!octeon enforces MIPS64 while avoiding octeon. You
+# can also use ! without an ISA value. For example
+# isa=!octeon!loongson2e disables octeon and loongson2e if otherwise
+# you would compile for one of them.
+#
+# There are also the following special pseudo-options:
+#
+# isa=loongson
# select a Loongson processor
#
# addressing=absolute
@@ -173,6 +181,9 @@
# options. For example, if the feature is present on revision 2
# processors and above, try to use "isa_rev>=2" instead of
# "-mips32r2" or "-mips64r2".
+#
+# (6) If you need to disable processor-specific extensions use
+# isa=!CPU instead of forcing a generic ISA.
# Exit immediately if this isn't a MIPS target.
if ![istarget mips*-*-*] {
@@ -825,29 +836,49 @@ proc mips-dg-options { args } {
set arch "-march=loongson2f"
}
} else {
- if { ![regexp {^(isa(?:|_rev))(=|<=|>=)([0-9]+)$} $spec \
- dummy prop relation value] } {
- error "Unrecognized isa specification: $isa_spec"
+ # With ! and = the ISA value is optional.
+ if { ![regexp {^(isa(?:|_rev))(=|<=|>=)([0-9]*)((?:![^!]+)*)$} \
+ $spec dummy prop relation value nocpus]
+ || ($value eq ""
+ && ($relation ne "="
+ || $nocpus eq ""))} {
+ error "Unrecognized isa specification: $spec"
}
- set current [mips_arch_info $arch $prop]
- if { ($current < $value && ![string equal $relation "<="])
- || ($current > $value && ![string equal $relation ">="])
- || ([mips_have_test_option_p options "-mgp64"]
- && [mips_32bit_arch_p $arch]) } {
- # The current setting is out of range; it cannot
- # possibly be used. Find a replacement that can.
- if { [string equal $prop "isa"] } {
- set arch "-mips$value"
- } elseif { $value == 0 } {
- set arch "-mips4"
- } else {
- if { [mips_have_option_p options "-mgp32"] } {
- set arch "-mips32"
+ if { $value ne "" } {
+ set current [mips_arch_info $arch $prop]
+ if { ($current < $value && ![string equal $relation "<="])
+ || ($current > $value && ![string equal $relation ">="])
+ || ([mips_have_test_option_p options "-mgp64"]
+ && [mips_32bit_arch_p $arch]) } {
+ # The current setting is out of range; it cannot
+ # possibly be used. Find a replacement that can.
+ if { [string equal $prop "isa"] } {
+ set arch "-mips$value"
+ } elseif { $value == 0 } {
+ set arch "-mips4"
} else {
- set arch "-mips64"
+ if { [mips_have_option_p options "-mgp32"] } {
+ set arch "-mips32"
+ } else {
+ set arch "-mips64"
+ }
+ if { $value > 1 } {
+ append arch "r$value"
+ }
}
- if { $value > 1 } {
- append arch "r$value"
+ }
+ }
+ # If we haven't switched to a generic ISA based on the
+ # isa* value, do it here if the processor-specific
+ # extension is not allowed.
+ if { $nocpus ne ""
+ && $arch eq [mips_option mips_base_options arch] } {
+ set cpu [regsub -- {-march=} $arch ""]
+ if { [regexp "!$cpu!" "$nocpus!"] } {
+ set isa_rev [mips_arch_info $arch isa_rev]
+ set arch "-mips[mips_arch_info $arch isa]"
+ if { $isa_rev > 1 } {
+ append arch "r$isa_rev"
}
}
}
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp b/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
index 57ffc525879..521bd53ee92 100644
--- a/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
+++ b/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.test-framework/test-framework.awk b/gcc/testsuite/gcc.test-framework/test-framework.awk
index 02537e8efb0..ccede06b5f1 100644
--- a/gcc/testsuite/gcc.test-framework/test-framework.awk
+++ b/gcc/testsuite/gcc.test-framework/test-framework.awk
@@ -3,7 +3,8 @@
# of passing tests.
#
#
-# Copyright (c) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gcc.test-framework/test-framework.exp b/gcc/testsuite/gcc.test-framework/test-framework.exp
index 722e09f78b6..c669f0ad1ce 100644
--- a/gcc/testsuite/gcc.test-framework/test-framework.exp
+++ b/gcc/testsuite/gcc.test-framework/test-framework.exp
@@ -1,4 +1,5 @@
-# Copyright (c) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (c) 2002, 2003, 2004, 2005, 2007, 2009
+# Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gfortran.dg/bound_7.f90 b/gcc/testsuite/gfortran.dg/bound_7.f90
new file mode 100644
index 00000000000..e422845b900
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bound_7.f90
@@ -0,0 +1,223 @@
+! { dg-do run }
+! { dg-options "-std=gnu" }
+! PR fortran/29391
+! This file is here to check that LBOUND and UBOUND return correct values
+!
+! Contributed by Francois-Xavier Coudert (coudert@clipper.ens.fr)
+ implicit none
+ integer, allocatable :: i(:,:), j(:), u(:,:,:,:)
+
+ allocate (i(-1:1,-1:1))
+ i = 0
+ allocate (j(-1:2))
+ j = 0
+ allocate (u(7,4,2,9))
+
+ call foo(u,4)
+ call jackal(-1,-8)
+ call jackal(-1,8)
+
+ if (any(lbound(i(-1:1,-1:1)) /= 1)) call abort
+ if (lbound(i(-1:1,-1:1), 1) /= 1) call abort
+ if (lbound(i(-1:1,-1:1), 2) /= 1) call abort
+
+ if (any(ubound(i(-1:1,-1:1)) /= 3)) call abort
+ if (ubound(i(-1:1,-1:1), 1) /= 3) call abort
+ if (ubound(i(-1:1,-1:1), 2) /= 3) call abort
+
+ if (any(lbound(i(:,:)) /= 1)) call abort
+ if (lbound(i(:,:), 1) /= 1) call abort
+ if (lbound(i(:,:), 2) /= 1) call abort
+
+ if (any(ubound(i(:,:)) /= 3)) call abort
+ if (ubound(i(:,:), 1) /= 3) call abort
+ if (ubound(i(:,:), 2) /= 3) call abort
+
+ if (any(lbound(i(0:,-1:)) /= 1)) call abort
+ if (lbound(i(0:,-1:), 1) /= 1) call abort
+ if (lbound(i(0:,-1:), 2) /= 1) call abort
+
+ if (any(ubound(i(0:,-1:)) /= [2,3])) call abort
+ if (ubound(i(0:,-1:), 1) /= 2) call abort
+ if (ubound(i(0:,-1:), 2) /= 3) call abort
+
+ if (any(lbound(i(:0,:0)) /= 1)) call abort
+ if (lbound(i(:0,:0), 1) /= 1) call abort
+ if (lbound(i(:0,:0), 2) /= 1) call abort
+
+ if (any(ubound(i(:0,:0)) /= 2)) call abort
+ if (ubound(i(:0,:0), 1) /= 2) call abort
+ if (ubound(i(:0,:0), 2) /= 2) call abort
+
+ if (any(lbound(transpose(i)) /= 1)) call abort
+ if (lbound(transpose(i), 1) /= 1) call abort
+ if (lbound(transpose(i), 2) /= 1) call abort
+
+ if (any(ubound(transpose(i)) /= 3)) call abort
+ if (ubound(transpose(i), 1) /= 3) call abort
+ if (ubound(transpose(i), 2) /= 3) call abort
+
+ if (any(lbound(reshape(i,[2,2])) /= 1)) call abort
+ if (lbound(reshape(i,[2,2]), 1) /= 1) call abort
+ if (lbound(reshape(i,[2,2]), 2) /= 1) call abort
+
+ if (any(ubound(reshape(i,[2,2])) /= 2)) call abort
+ if (ubound(reshape(i,[2,2]), 1) /= 2) call abort
+ if (ubound(reshape(i,[2,2]), 2) /= 2) call abort
+
+ if (any(lbound(cshift(i,-1)) /= 1)) call abort
+ if (lbound(cshift(i,-1), 1) /= 1) call abort
+ if (lbound(cshift(i,-1), 2) /= 1) call abort
+
+ if (any(ubound(cshift(i,-1)) /= 3)) call abort
+ if (ubound(cshift(i,-1), 1) /= 3) call abort
+ if (ubound(cshift(i,-1), 2) /= 3) call abort
+
+ if (any(lbound(eoshift(i,-1)) /= 1)) call abort
+ if (lbound(eoshift(i,-1), 1) /= 1) call abort
+ if (lbound(eoshift(i,-1), 2) /= 1) call abort
+
+ if (any(ubound(eoshift(i,-1)) /= 3)) call abort
+ if (ubound(eoshift(i,-1), 1) /= 3) call abort
+ if (ubound(eoshift(i,-1), 2) /= 3) call abort
+
+ if (any(lbound(spread(i,1,2)) /= 1)) call abort
+ if (lbound(spread(i,1,2), 1) /= 1) call abort
+ if (lbound(spread(i,1,2), 2) /= 1) call abort
+
+ if (any(ubound(spread(i,1,2)) /= [2,3,3])) call abort
+ if (ubound(spread(i,1,2), 1) /= 2) call abort
+ if (ubound(spread(i,1,2), 2) /= 3) call abort
+ if (ubound(spread(i,1,2), 3) /= 3) call abort
+
+ if (any(lbound(maxloc(i)) /= 1)) call abort
+ if (lbound(maxloc(i), 1) /= 1) call abort
+
+ if (any(ubound(maxloc(i)) /= 2)) call abort
+ if (ubound(maxloc(i), 1) /= 2) call abort
+
+ if (any(lbound(minloc(i)) /= 1)) call abort
+ if (lbound(minloc(i), 1) /= 1) call abort
+
+ if (any(ubound(minloc(i)) /= 2)) call abort
+ if (ubound(minloc(i), 1) /= 2) call abort
+
+ if (any(lbound(maxval(i,2)) /= 1)) call abort
+ if (lbound(maxval(i,2), 1) /= 1) call abort
+
+ if (any(ubound(maxval(i,2)) /= 3)) call abort
+ if (ubound(maxval(i,2), 1) /= 3) call abort
+
+ if (any(lbound(minval(i,2)) /= 1)) call abort
+ if (lbound(minval(i,2), 1) /= 1) call abort
+
+ if (any(ubound(minval(i,2)) /= 3)) call abort
+ if (ubound(minval(i,2), 1) /= 3) call abort
+
+ if (any(lbound(any(i==1,2)) /= 1)) call abort
+ if (lbound(any(i==1,2), 1) /= 1) call abort
+
+ if (any(ubound(any(i==1,2)) /= 3)) call abort
+ if (ubound(any(i==1,2), 1) /= 3) call abort
+
+ if (any(lbound(count(i==1,2)) /= 1)) call abort
+ if (lbound(count(i==1,2), 1) /= 1) call abort
+
+ if (any(ubound(count(i==1,2)) /= 3)) call abort
+ if (ubound(count(i==1,2), 1) /= 3) call abort
+
+ if (any(lbound(merge(i,i,.true.)) /= 1)) call abort
+ if (lbound(merge(i,i,.true.), 1) /= 1) call abort
+ if (lbound(merge(i,i,.true.), 2) /= 1) call abort
+
+ if (any(ubound(merge(i,i,.true.)) /= 3)) call abort
+ if (ubound(merge(i,i,.true.), 1) /= 3) call abort
+ if (ubound(merge(i,i,.true.), 2) /= 3) call abort
+
+ if (any(lbound(lbound(i)) /= 1)) call abort
+ if (lbound(lbound(i), 1) /= 1) call abort
+
+ if (any(ubound(lbound(i)) /= 2)) call abort
+ if (ubound(lbound(i), 1) /= 2) call abort
+
+ if (any(lbound(ubound(i)) /= 1)) call abort
+ if (lbound(ubound(i), 1) /= 1) call abort
+
+ if (any(ubound(ubound(i)) /= 2)) call abort
+ if (ubound(ubound(i), 1) /= 2) call abort
+
+ if (any(lbound(shape(i)) /= 1)) call abort
+ if (lbound(shape(i), 1) /= 1) call abort
+
+ if (any(ubound(shape(i)) /= 2)) call abort
+ if (ubound(shape(i), 1) /= 2) call abort
+
+ if (any(lbound(product(i,2)) /= 1)) call abort
+ if (any(ubound(product(i,2)) /= 3)) call abort
+ if (any(lbound(sum(i,2)) /= 1)) call abort
+ if (any(ubound(sum(i,2)) /= 3)) call abort
+ if (any(lbound(matmul(i,i)) /= 1)) call abort
+ if (any(ubound(matmul(i,i)) /= 3)) call abort
+ if (any(lbound(pack(i,.true.)) /= 1)) call abort
+ if (any(ubound(pack(i,.true.)) /= 9)) call abort
+ if (any(lbound(unpack(j,[.true.],[2])) /= 1)) call abort
+ if (any(ubound(unpack(j,[.true.],[2])) /= 1)) call abort
+
+ call sub1(i,3)
+ call sub1(reshape([7,9,4,6,7,9],[3,2]),3)
+ call sub2
+
+contains
+
+ subroutine sub1(a,n)
+ integer :: n, a(2:n+1,4:*)
+
+ if (any([lbound(a,1), lbound(a,2)] /= [2, 4])) call abort
+ if (any(lbound(a) /= [2, 4])) call abort
+ end subroutine sub1
+
+ subroutine sub2
+ integer :: x(3:2, 1:2)
+
+ if (size(x) /= 0) call abort
+ if (lbound (x, 1) /= 1 .or. lbound(x, 2) /= 1) call abort
+ if (any (lbound (x) /= [1, 1])) call abort
+ if (ubound (x, 1) /= 0 .or. ubound(x, 2) /= 2) call abort
+ if (any (ubound (x) /= [0, 2])) call abort
+ end subroutine sub2
+
+ subroutine sub3
+ integer :: x(4:5, 1:2)
+
+ if (size(x) /= 0) call abort
+ if (lbound (x, 1) /= 4 .or. lbound(x, 2) /= 1) call abort
+ if (any (lbound (x) /= [4, 1])) call abort
+ if (ubound (x, 1) /= 4 .or. ubound(x, 2) /= 2) call abort
+ if (any (ubound (x) /= [4, 2])) call abort
+ end subroutine sub3
+
+ subroutine foo (x,n)
+ integer :: x(7,n,2,*), n
+
+ if (ubound(x,1) /= 7 .or. ubound(x,2) /= 4 .or. ubound(x,3) /= 2) call abort
+ end subroutine foo
+
+ subroutine jackal (b, c)
+ integer :: b, c
+ integer :: soda(b:c, 3:4)
+
+ if (b > c) then
+ if (size(soda) /= 0) call abort
+ if (lbound (soda, 1) /= 1 .or. ubound (soda, 1) /= 0) call abort
+ else
+ if (size(soda) /= 2*(c-b+1)) call abort
+ if (lbound (soda, 1) /= b .or. ubound (soda, 1) /= c) call abort
+ end if
+
+ if (lbound (soda, 2) /= 3 .or. ubound (soda, 2) /= 4) call abort
+ if (any (lbound (soda) /= [lbound(soda,1), lbound(soda,2)])) call abort
+ if (any (ubound (soda) /= [ubound(soda,1), ubound(soda,2)])) call abort
+
+ end subroutine jackal
+
+end
diff --git a/gcc/testsuite/gfortran.dg/bound_simplification_2.f90 b/gcc/testsuite/gfortran.dg/bound_simplification_2.f90
new file mode 100644
index 00000000000..05477776f08
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bound_simplification_2.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! PR 38914 - this used to give an ICE due to missing
+! simplification.
+module foo
+ INTEGER, PARAMETER, DIMENSION(0:20,4) :: IP_ARRAY2_4_S = 0
+ INTEGER, PARAMETER, DIMENSION(2) :: IP_ARRAY1_32_S = &
+ & (/ LBOUND(IP_ARRAY2_4_S(5:10,2:3))/)
+END module foo
+! { dg-final { cleanup-modules "foo" } }
diff --git a/gcc/testsuite/gfortran.dg/dg.exp b/gcc/testsuite/gfortran.dg/dg.exp
index 2ccdfd0be45..ea042831539 100644
--- a/gcc/testsuite/gfortran.dg/dg.exp
+++ b/gcc/testsuite/gfortran.dg/dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gfortran.dg/vect/vect.exp b/gcc/testsuite/gfortran.dg/vect/vect.exp
index c532967ae36..00f5b00bb87 100644
--- a/gcc/testsuite/gfortran.dg/vect/vect.exp
+++ b/gcc/testsuite/gfortran.dg/vect/vect.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2004, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp b/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
index 6c4890d7b72..5c56ec3f529 100644
--- a/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
+++ b/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
@@ -1,5 +1,5 @@
# Expect driver script for GCC Regression Tests
-# Copyright (C) 2003, 2007 Free Software Foundation
+# Copyright (C) 2003, 2007, 2008 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp b/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
index 2dd408df2d6..40b65f81cda 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/c-compat.exp b/gcc/testsuite/lib/c-compat.exp
index 53562731b54..ddbdd2d455e 100644
--- a/gcc/testsuite/lib/c-compat.exp
+++ b/gcc/testsuite/lib/c-compat.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp
index bfc6a566567..769ec97d3ec 100644
--- a/gcc/testsuite/lib/c-torture.exp
+++ b/gcc/testsuite/lib/c-torture.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1992-1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1992-1998, 1999, 2000, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/compat.exp b/gcc/testsuite/lib/compat.exp
index 4e7d022643b..049e5a23270 100644
--- a/gcc/testsuite/lib/compat.exp
+++ b/gcc/testsuite/lib/compat.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/dg-pch.exp b/gcc/testsuite/lib/dg-pch.exp
index 6c3ff3483ae..5320880bb43 100644
--- a/gcc/testsuite/lib/dg-pch.exp
+++ b/gcc/testsuite/lib/dg-pch.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/fortran-torture.exp b/gcc/testsuite/lib/fortran-torture.exp
index 1e92d101911..811b4cfcaad 100644
--- a/gcc/testsuite/lib/fortran-torture.exp
+++ b/gcc/testsuite/lib/fortran-torture.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 09f6e26aef4..a5f26800c1c 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -1,5 +1,5 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
-# 2004, 2005, 2007 Free Software Foundation, Inc.
+# 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 13e0171d650..1944e83febc 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2006, 2007
+# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp
index 070b966a9a9..ddbf9ef6bf7 100644
--- a/gcc/testsuite/lib/gcc.exp
+++ b/gcc/testsuite/lib/gcc.exp
@@ -1,5 +1,5 @@
-# Copyright (C) 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2007
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2003, 2004,
+# 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/gfortran.exp b/gcc/testsuite/lib/gfortran.exp
index 6d5617f5f54..d001f657fbc 100644
--- a/gcc/testsuite/lib/gfortran.exp
+++ b/gcc/testsuite/lib/gfortran.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/gnat.exp b/gcc/testsuite/lib/gnat.exp
index f73ec8152a0..d37a4aa1e06 100644
--- a/gcc/testsuite/lib/gnat.exp
+++ b/gcc/testsuite/lib/gnat.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/obj-c++.exp b/gcc/testsuite/lib/obj-c++.exp
index 502f4a73094..b61dc556437 100644
--- a/gcc/testsuite/lib/obj-c++.exp
+++ b/gcc/testsuite/lib/obj-c++.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/objc-torture.exp b/gcc/testsuite/lib/objc-torture.exp
index 0d031590cfc..7aba8879ab9 100644
--- a/gcc/testsuite/lib/objc-torture.exp
+++ b/gcc/testsuite/lib/objc-torture.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1992-1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1992-1998, 1999, 2000, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/objc.exp b/gcc/testsuite/lib/objc.exp
index 1705979dede..e763fc2f0f6 100644
--- a/gcc/testsuite/lib/objc.exp
+++ b/gcc/testsuite/lib/objc.exp
@@ -1,5 +1,5 @@
# Copyright (C) 1992, 1993, 1994, 1996, 1997, 2000, 2001, 2002, 2004, 2005,
-# 2007 Free Software Foundation, Inc.
+# 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp
index 967b7906f0e..2e417645733 100644
--- a/gcc/testsuite/lib/profopt.exp
+++ b/gcc/testsuite/lib/profopt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/prune.exp b/gcc/testsuite/lib/prune.exp
index d1a9f95bd46..5a835098e25 100644
--- a/gcc/testsuite/lib/prune.exp
+++ b/gcc/testsuite/lib/prune.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1999, 2000, 2002, 2004, 2007
+# Copyright (C) 1997, 1999, 2000, 2002, 2004, 2007, 2008
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp
index 4c2903061aa..24de1871b6a 100644
--- a/gcc/testsuite/lib/scanasm.exp
+++ b/gcc/testsuite/lib/scanasm.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2000, 2002, 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/scandump.exp b/gcc/testsuite/lib/scandump.exp
index 373052b4566..7800bdebb55 100644
--- a/gcc/testsuite/lib/scandump.exp
+++ b/gcc/testsuite/lib/scandump.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 2000, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003, 2005, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index fe6453bad7d..ac88a7f2557 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2009
+# Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 12dc6852255..03c1779a600 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1451,6 +1451,19 @@ proc check_effective_target_mips_loongson { } {
}]
}
+# Return 1 if this is an ARM target that adheres to the ABI for the ARM
+# Architecture.
+
+proc check_effective_target_arm_eabi { } {
+ return [check_no_compiler_messages arm_eabi object {
+ #ifndef __ARM_EABI__
+ #error not EABI
+ #else
+ int dummy;
+ #endif
+ }]
+}
+
# Return 1 if this is a PowerPC target with floating-point registers.
proc check_effective_target_powerpc_fprs { } {
diff --git a/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp b/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
index 75d1dcf6316..257c28e4805 100644
--- a/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
+++ b/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
@@ -1,5 +1,5 @@
# GCC Objective-C testsuite that uses the `dg.exp' driver.
-# Copyright (C) 1997, 2001, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2001, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/objc.dg/pch/pch.exp b/gcc/testsuite/objc.dg/pch/pch.exp
index 95af1656864..3747bde409e 100644
--- a/gcc/testsuite/objc.dg/pch/pch.exp
+++ b/gcc/testsuite/objc.dg/pch/pch.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2002, 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/objc/compile/compile.exp b/gcc/testsuite/objc/compile/compile.exp
index 0f6a7e915c7..a892736bb62 100644
--- a/gcc/testsuite/objc/compile/compile.exp
+++ b/gcc/testsuite/objc/compile/compile.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2001, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2001, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/objc/execute/exceptions/exceptions.exp b/gcc/testsuite/objc/execute/exceptions/exceptions.exp
index d3a37385746..bd0f9938ecf 100644
--- a/gcc/testsuite/objc/execute/exceptions/exceptions.exp
+++ b/gcc/testsuite/objc/execute/exceptions/exceptions.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gcc/testsuite/objc/execute/execute.exp b/gcc/testsuite/objc/execute/execute.exp
index c69d9f4c70f..4985d966d6d 100644
--- a/gcc/testsuite/objc/execute/execute.exp
+++ b/gcc/testsuite/objc/execute/execute.exp
@@ -1,4 +1,5 @@
-# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993, 1995, 1997, 2007, 2008
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by