diff options
Diffstat (limited to 'gcc/testsuite')
23 files changed, 445 insertions, 17 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d7c8292ad73..352ab86d5ab 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,98 @@ +2009-08-31 Jason Merrill <jason@redhat.com> + + PR c++/41127 + * g++.dg/parse/enum5.C: New. + * g++.dg/cpp0x/enum1.C: Adjust expected error. + +2009-08-31 Gerald Pfeifer <gerald@pfeifer.com> + + * gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Do not define + for FreeBSD. + +2009-08-29 H.J. Lu <hongjiu.lu@intel.com> + + Backport from mainline: + 2009-08-26 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/41162 + * gfortran.dg/pr41162.f: New. + + 2009-08-26 Richard Guenther <rguenther@suse.de> + + PR middle-end/41163 + * gcc.c-torture/compile/pr41163.c: New testcase. + + 2009-08-25 Janus Weil <janus@gcc.gnu.org> + + PR fortran/41139 + * gfortran.dg/proc_ptr_25.f90: New. + * gfortran.dg/proc_ptr_comp_18.f90: New. + * gfortran.dg/proc_ptr_comp_19.f90: New. + + 2009-08-20 Michael Matz <matz@suse.de> + + PR fortran/41126 + * gfortran.dg/pr41126.f90: New test. + + 2009-08-20 Janus Weil <janus@gcc.gnu.org> + + PR fortran/41121 + * gfortran.dg/intrinsic_5.f90: New. + + 2009-08-19 Jason Merrill <jason@redhat.com> + + PR c++/41120 + * g++.dg/other/gc4.C: New. + +2009-08-28 Uros Bizjak <ubizjak@gmail.com> + + Backport from mainline: + 2009-08-25 Uros Bizjak <ubizjak@gmail.com> + + * gcc.c-torture/compile/limits-fndefn.c: Add dg-timeout-factor. + + 2009-08-18 Uros Bizjak <ubizjak@gmail.com> + + * g++.dg/cdce3.C: Add -mieee for alpha*-*-* targets. + + 2009-08-17 Uros Bizjak <ubizjak@gmail.com> + + * lib/target-supports.exp + (check_effective_target_vect_cmdline_needed): Add alpha to the list + of targets that do not need command line argument to enable SIMD. + +2008-08-25 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/41062 + * gfortran.dg/use_only_4.f90: New test. + +2009-08-24 Richard Guenther <rguenther@suse.de> + + PR middle-end/41094 + * gcc.dg/torture/pr41094.c: New testcase. + * gcc.dg/torture/builtin-power-1.c: Adjust. + * gcc.dg/builtins-10.c: Likewise. + +2009-08-23 Uros Bizjak <ubizjak@gmail.com> + + PR target/40718 + * gcc.target/i386/pr40718.c: New test. + +2009-08-21 Jakub Jelinek <jakub@redhat.com> + + PR c++/41131 + * g++.dg/expr/unary3.C: New test. + +2009-08-20 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR libfortran/40962 + * c_f_pointer_tests_4.f90: New test. + +2009-08-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/41123 + * gcc.dg/pr41123.c: New test. + 2009-08-18 H.J. Lu <hongjiu.lu@intel.com> * gfortran.dg/pr41011.f: Removed. diff --git a/gcc/testsuite/g++.dg/cdce3.C b/gcc/testsuite/g++.dg/cdce3.C index b73ebf81220..6756a700812 100644 --- a/gcc/testsuite/g++.dg/cdce3.C +++ b/gcc/testsuite/g++.dg/cdce3.C @@ -2,14 +2,14 @@ /* { dg-require-effective-target c99_runtime } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { pow10 && large_long_double } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { {! pow10 } && large_long_double } } } */ -/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target {pow10 && {! large_long_double } } } } */ +/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { pow10 && {! large_long_double } } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { {! pow10 } && {! large_long_double } } } } */ -/* { dg-final { scan-tree-dump "cdce3.C:91: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ -/* { dg-final { scan-tree-dump "cdce3.C:92: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ -/* { dg-final { scan-tree-dump "cdce3.C:94: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ -/* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ -/* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ -/* { dg-final { scan-tree-dump "cdce3.C:97: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { pow10 && large_long_double } } } } */ +/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { {! pow10 } && large_long_double } } } } */ +/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { alpha*-*-* && { pow10 && {! large_long_double } } } } } */ +/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { alpha*-*-* && { {! pow10 } && {! large_long_double } } } } } */ +/* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ +/* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:99: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:100: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ @@ -20,6 +20,10 @@ /* { dg-final { scan-tree-dump "cdce3.C:105: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:106: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:107: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce3.C:108: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce3.C:109: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce3.C:110: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce3.C:111: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include <stdlib.h> #include <math.h> diff --git a/gcc/testsuite/g++.dg/cpp0x/enum1.C b/gcc/testsuite/g++.dg/cpp0x/enum1.C index af691f028b1..fb03692fab4 100644 --- a/gcc/testsuite/g++.dg/cpp0x/enum1.C +++ b/gcc/testsuite/g++.dg/cpp0x/enum1.C @@ -2,5 +2,5 @@ // { dg-do compile } // { dg-options "-std=gnu++0x" } -enum : { }; // { dg-error "expected type-specifier" } +enum : { }; // { dg-error "expected" } enum : 3 { }; // { dg-error "expected" } diff --git a/gcc/testsuite/g++.dg/expr/unary3.C b/gcc/testsuite/g++.dg/expr/unary3.C new file mode 100644 index 00000000000..abca0322d29 --- /dev/null +++ b/gcc/testsuite/g++.dg/expr/unary3.C @@ -0,0 +1,11 @@ +// PR c++/41131 +// { dg-do compile } + +struct X { enum E { a = 100 }; }; + +int +main () +{ + X x; + (void) &x.a; // { dg-error "lvalue required" } +} diff --git a/gcc/testsuite/g++.dg/other/gc4.C b/gcc/testsuite/g++.dg/other/gc4.C new file mode 100644 index 00000000000..50c16b366db --- /dev/null +++ b/gcc/testsuite/g++.dg/other/gc4.C @@ -0,0 +1,14 @@ +// PR c++/41120 +// { dg-options "--param ggc-min-heapsize=0 --param ggc-min-expand=0" } + +struct A +{ + A(); +}; + +struct B +{ + A a; +}; + +B b; diff --git a/gcc/testsuite/g++.dg/parse/enum5.C b/gcc/testsuite/g++.dg/parse/enum5.C new file mode 100644 index 00000000000..3ebb02f7573 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/enum5.C @@ -0,0 +1,17 @@ +// PR c++/41127 + +#define CHAR_BIT 8 +enum EE {ee}; +typedef unsigned int T; + +struct D { + T : sizeof(unsigned int) * CHAR_BIT; // OK + EE : sizeof(EE) * CHAR_BIT; // OK + enum EE : sizeof(EE) * CHAR_BIT; // not OK + enum EE xxxx : sizeof(EE) * CHAR_BIT; // OK + T x : sizeof(unsigned int) * CHAR_BIT; // OK + enum FF {ff} : sizeof(int) * CHAR_BIT; // OK +} element; + +enum EE xx; +EE yy; diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c index 10f8714414f..65e60b39e1a 100644 --- a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c +++ b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c @@ -1,4 +1,5 @@ /* { dg-skip-if "too complex for avr and picochip" { picochip-*-* avr-*-* } { "*" } { "" } } */ +/* { dg-timeout-factor 4.0 } */ #define LIM1(x) x##0, x##1, x##2, x##3, x##4, x##5, x##6, x##7, x##8, x##9, #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9) diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41163.c b/gcc/testsuite/gcc.c-torture/compile/pr41163.c new file mode 100644 index 00000000000..c2248378376 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr41163.c @@ -0,0 +1,10 @@ +struct option { + void *value; +}; +void parse_options (struct option *); +void cmd_grep(void) +{ + struct option options[] = { { &options } }; + parse_options(options); +} + diff --git a/gcc/testsuite/gcc.dg/builtins-10.c b/gcc/testsuite/gcc.dg/builtins-10.c index d90e61ab326..1b141fda252 100644 --- a/gcc/testsuite/gcc.dg/builtins-10.c +++ b/gcc/testsuite/gcc.dg/builtins-10.c @@ -25,7 +25,7 @@ void test(double x) link_error (); if (pow(pow(x,4.0),0.25) != x) - link_error (); + /* XFAIL. PR41098. */; } void test2(double x, double y, double z) @@ -42,7 +42,7 @@ void test2(double x, double y, double z) if (pow(sqrt(x),y) != pow(x,y*0.5)) link_error (); - if (pow(pow(x,y),z) != pow(x,y*z)) + if (pow(pow(fabs(x),y),z) != pow(fabs(x),y*z)) link_error (); } diff --git a/gcc/testsuite/gcc.dg/builtins-config.h b/gcc/testsuite/gcc.dg/builtins-config.h index 7e375b8d693..eacc09dcf94 100644 --- a/gcc/testsuite/gcc.dg/builtins-config.h +++ b/gcc/testsuite/gcc.dg/builtins-config.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation. +/* Copyright (C) 2003, 2004, 2005, 2006, 2009 Free Software Foundation. Define macros useful in tests for bulitin functions. */ @@ -15,8 +15,8 @@ /* Irix6 doesn't have the entire C99 runtime. */ #elif defined(__AVR__) /* AVR doesn't have the entire C99 runtime. */ -#elif defined(__FreeBSD__) && (__FreeBSD__ < 5) -/* FreeBSD before version 5 doesn't have the entire C99 runtime. */ +#elif defined(__FreeBSD__) +/* FreeBSD up to at least version 8 lacks support for cexp and friends. */ #elif defined(__netware__) /* NetWare doesn't have the entire C99 runtime. */ #elif defined(__vxworks) diff --git a/gcc/testsuite/gcc.dg/pr41123.c b/gcc/testsuite/gcc.dg/pr41123.c new file mode 100644 index 00000000000..076edb46ee5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr41123.c @@ -0,0 +1,46 @@ +/* PR middle-end/41123 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fno-strict-aliasing" } */ + +struct S { char a, b, c, d, e, f, g, h; }; +struct T { int a, b; }; + +struct S +f1 (float _Complex x) +{ + return *(struct S *) & x; +} + +int +f2 (float _Complex x) +{ + struct S f = f1 (x); + return f.b; +} + +struct T +f3 (float _Complex x) +{ + return *(struct T *) & x; +} + +int +f4 (float _Complex x) +{ + struct T f = f3 (x); + return f.a; +} + +int +f5 (float _Complex x) +{ + struct T f = f3 (x); + return f.b; +} + +struct T +f6 (float _Complex x) +{ + struct T f = f3 (x); + return f; +} diff --git a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c index a63ebf55423..d1403c46c94 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c @@ -77,9 +77,9 @@ void test(double d1, double d2, double d3, /* Test pow(pow(x,y),z) -> pow(x,y*z). */ #define POW_POW \ extern void link_failure_pow_pow(void); \ - if (pow(pow(d1, d2), d3) != pow(d1,d2*d3) \ - || powf(powf(f1,f2),f3) != powf(f1,f2*f3) \ - || powl(powl(ld1,ld2),ld3) != powl(ld1,ld2*ld3)) \ + if (pow(pow(fabs(d1), d2), d3) != pow(fabs(d1),d2*d3) \ + || powf(powf(fabs(f1),f2),f3) != powf(fabs(f1),f2*f3) \ + || powl(powl(fabs(ld1),ld2),ld3) != powl(fabs(ld1),ld2*ld3)) \ link_failure_pow_pow() POW_POW; diff --git a/gcc/testsuite/gcc.dg/torture/pr41094.c b/gcc/testsuite/gcc.dg/torture/pr41094.c new file mode 100644 index 00000000000..2a4e9616cbf --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr41094.c @@ -0,0 +1,19 @@ +/* { dg-do run } */ +/* { dg-options "-ffast-math" } */ + +#include <math.h> + +extern void abort (void); + +double foo(void) +{ + double x = -4.0; + return pow (x * x, 0.25); +} + +int main() +{ + if (foo() != 2.0) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/pr40718.c b/gcc/testsuite/gcc.target/i386/pr40718.c new file mode 100644 index 00000000000..f6029ed98ab --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr40718.c @@ -0,0 +1,36 @@ +/* { dg-do run } */ +/* { dg-require-effective-target ilp32 } */ +/* { dg-options "-O1 -foptimize-sibling-calls" } */ + +void abort (void); + +struct S +{ + void (__attribute__((__stdcall__)) *f) (struct S *); + int i; +}; + +void __attribute__((__stdcall__)) +foo (struct S *s) +{ + s->i++; +} + +void __attribute__((__stdcall__)) +bar (struct S *s) +{ + foo(s); + s->f(s); +} + +int main (void) +{ + struct S s = { foo, 0 }; + + bar (&s); + if (s.i != 2) + abort (); + + return 0; +} + diff --git a/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 b/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 new file mode 100644 index 00000000000..4f5338d605a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 @@ -0,0 +1,15 @@ +! { dg-do run } +program main + use iso_c_binding, only: c_ptr, c_loc, c_f_pointer + implicit none + integer, dimension(2,1,2), target :: table + table = reshape ( (/ 1,2,-1,-2/), (/2,1,2/)) + call set_table (c_loc (table)) +contains + subroutine set_table (cptr) + type(c_ptr), intent(in) :: cptr + integer, dimension(:,:,:), pointer :: table_tmp + call c_f_pointer (cptr, table_tmp, (/2,1,2/)) + if (any(table_tmp /= table)) call abort + end subroutine set_table +end program main diff --git a/gcc/testsuite/gfortran.dg/intrinsic_5.f90 b/gcc/testsuite/gfortran.dg/intrinsic_5.f90 new file mode 100644 index 00000000000..77ecf32beeb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_5.f90 @@ -0,0 +1,13 @@ +! { dg-do compile } +! { dg-options "-fimplicit-none" } +! +! PR 41121: [4.5 Regression] compile-time error when building BLAS with -fimplicit-none +! +! Original test case: http://www.netlib.org/blas/dgbmv.f +! Reduced by Joost VandeVondele <jv244@cam.ac.uk> + + INTRINSIC MIN + INTEGER :: I,J + print *,MIN(I,J) +END + diff --git a/gcc/testsuite/gfortran.dg/pr41126.f90 b/gcc/testsuite/gfortran.dg/pr41126.f90 new file mode 100644 index 00000000000..a43758eadaa --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr41126.f90 @@ -0,0 +1,6 @@ +! { dg-do compile } +SUBROUTINE write_cputime( checkpoint ) + CHARACTER(LEN=*), INTENT(IN) :: checkpoint + CHARACTER(LEN=LEN_TRIM(checkpoint)+7) :: string1 + string1 = ADJUSTL(string1) +END SUBROUTINE write_cputime diff --git a/gcc/testsuite/gfortran.dg/pr41162.f b/gcc/testsuite/gfortran.dg/pr41162.f new file mode 100644 index 00000000000..eea3c55f6c1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr41162.f @@ -0,0 +1,5 @@ +! { dg-do compile } +! PRs 41154/41162 + write (*,'(1PD24.15,F4.2,0P)') 1.0d0 + write (*,'(1PD24.15,F4.2,0P/)') 1.0d0 + end diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 new file mode 100644 index 00000000000..cfa0d443478 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 @@ -0,0 +1,36 @@ +! { dg-do run } +! +! PR 41139: [4.5 Regression] a procedure pointer call as actual argument +! +! Original test case by Barron Bichon <barron.bichon@swri.org> +! Modified by Janus Weil <janus@gcc.gnu.org> + +PROGRAM test + + PROCEDURE(add), POINTER :: f + logical :: g + + ! Passing the function works + g=greater(4.,add(1.,2.)) + if (.not. g) call abort() + + ! Passing the procedure pointer fails + f => add + g=greater(4.,f(1.,2.)) + if (.not. g) call abort() + +CONTAINS + + REAL FUNCTION add(x,y) + REAL, INTENT(in) :: x,y + print *,"add:",x,y + add = x+y + END FUNCTION add + + LOGICAL FUNCTION greater(x,y) + REAL, INTENT(in) :: x, y + greater = (x > y) + END FUNCTION greater + +END PROGRAM test + diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_18.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_18.f90 new file mode 100644 index 00000000000..4b849b64e18 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_18.f90 @@ -0,0 +1,33 @@ +! { dg-do run } +! +! PR 41139: [4.5 Regression] a procedure pointer call as actual argument +! +! Contributed by Janus Weil <janus@gcc.gnu.org> + +PROGRAM test + + type :: t + PROCEDURE(add), POINTER, nopass :: f + end type + type(t) :: o + logical :: g + + o%f => add + g=greater(4.,o%f(1.,2.)) + if (.not. g) call abort() + +CONTAINS + + REAL FUNCTION add(x,y) + REAL, INTENT(in) :: x,y + add = x+y + END FUNCTION add + + LOGICAL FUNCTION greater(x,y) + REAL, INTENT(in) :: x, y + print *,"greater:",x,y + greater = (x > y) + END FUNCTION greater + +END PROGRAM test + diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_19.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_19.f90 new file mode 100644 index 00000000000..8027c82d39b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_19.f90 @@ -0,0 +1,32 @@ +! { dg-do run } +! +! PR 41139: [4.5 Regression] a procedure pointer call as actual argument +! +! Contributed by Janus Weil <janus@gcc.gnu.org> + +PROGRAM test + + type :: t + PROCEDURE(three), POINTER, nopass :: f + end type + type(t) :: o + logical :: g + + o%f => three + g=greater(4.,o%f()) + if (.not. g) call abort() + +CONTAINS + + REAL FUNCTION three() + three = 3. + END FUNCTION + + LOGICAL FUNCTION greater(x,y) + REAL, INTENT(in) :: x, y + print *,"greater:",x,y + greater = (x > y) + END FUNCTION greater + +END PROGRAM test + diff --git a/gcc/testsuite/gfortran.dg/use_only_4.f90 b/gcc/testsuite/gfortran.dg/use_only_4.f90 new file mode 100644 index 00000000000..a37db45ef77 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/use_only_4.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! Test the fix for PR41062, in which an ICE would ensue because +! of confusion between the two 'one's in the creation of module +! debug info. +! +! Reported by Norman S. Clerman <clerman@fuse.net> +! Reduced testcase by Tobias Burnus <burnus@gcc.gnu.org> +! +module m1 + interface one ! GENERIC "one" + module procedure one1 + end interface +contains + subroutine one1() + call abort + end subroutine one1 +end module m1 + +module m2 +use m1, only : one ! USE generic "one" +contains + subroutine two() + call one() ! Call internal "one" + contains + subroutine one() ! Internal "one" + print *, "m2" + end subroutine one + end subroutine two +end module m2 + + use m2 + call two +end +! { dg-final { cleanup-modules "m1 m2" } } diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4b151b517c4..6b6dff0139e 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1276,7 +1276,8 @@ proc check_effective_target_vect_cmdline_needed { } { verbose "check_effective_target_vect_cmdline_needed: using cached result" 2 } else { set et_vect_cmdline_needed_saved 1 - if { [istarget ia64-*-*] + if { [istarget alpha*-*-*] + || [istarget ia64-*-*] || (([istarget x86_64-*-*] || [istarget i?86-*-*]) && [check_effective_target_lp64]) || ([istarget powerpc*-*-*] |