diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-02-23 07:00:35 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-02-23 07:00:35 +0000 |
commit | 813491d0029a21981f65785cacf0f4229315df5f (patch) | |
tree | 038dd7e767cab757a10ca9400a1952ae841999ce /gcc/testsuite | |
parent | f4618e1c2c649db169baee64b4791fe40205ca7c (diff) | |
download | gcc-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')
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 ≈ +} + +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 |