Commit 5482aaab by Mark Mitchell Committed by Mark Mitchell

gcc-dg.exp (dg-require-dll): New function.

	* lib/gcc-dg.exp (dg-require-dll): New function.
	(dg-xfail-if): Likewise.
	* gcc.c-torture/compile/compile.exp: Use dg rather than c-torture
	driver.

	* gcc.c-torture/compile/20000804-1.c: Convert to dg format.
	* gcc.c-torture/compile/20001205-1.c: Likewise.
	* gcc.c-torture/compile/20001226-1.c: Likewise.
	* gcc.c-torture/compile/20010518-2.c: Likewise.
	* gcc.c-torture/compile/20020312-1.c: Likewise.
	* gcc.c-torture/compile/20020604-1.c: Likewise.
	* gcc.c-torture/compile/920501-12.c: Likewise.
	* gcc.c-torture/compile/920501-4.c: Likewise.
	* gcc.c-torture/compile/920520-1.c: Likewise.
	* gcc.c-torture/compile/920521-1.c: Likewise.
	* gcc.c-torture/compile/920625-1.c: Likewise.
	* gcc.c-torture/compile/961203-1.c: Likewise.
	* gcc.c-torture/compile/980506-1.c: Likewise.
	* gcc.c-torture/compile/981006-1.c: Likewise.
	* gcc.c-torture/compile/981022-1.c: Likewise.
	* gcc.c-torture/compile/981223-1.c: Likewise.
	* gcc.c-torture/compile/990617-1.c: Likewise.
	* gcc.c-torture/compile/dll.c: Likewise.
	* gcc.c-torture/compile/labels-3.c: Likewise.
	* gcc.c-torture/compile/mipscop-1.c: Likewise.
	* gcc.c-torture/compile/mipscop-2.c: Likewise.
	* gcc.c-torture/compile/mipscop-3.c: Likewise.
	* gcc.c-torture/compile/mipscop-4.c: Likewise.
	* gcc.c-torture/compile/simd-5.c: Likewise.
	* gcc.c-torture/compile/20000804-1.x: Remove.
	* gcc.c-torture/compile/20001205-1.x: Likewise.
	* gcc.c-torture/compile/20001226-1.x: Likewise.
	* gcc.c-torture/compile/20010518-2.x: Likewise.
	* gcc.c-torture/compile/20020312-1.x: Likewise.
	* gcc.c-torture/compile/20020604-1.x: Likewise.
	* gcc.c-torture/compile/920501-12.x: Likewise.
	* gcc.c-torture/compile/920501-4.x: Likewise.
	* gcc.c-torture/compile/920520-1.x: Likewise.
	* gcc.c-torture/compile/920521-1.x: Likewise.
	* gcc.c-torture/compile/920625-1.x: Likewise.
	* gcc.c-torture/compile/961203-1.x: Likewise.
	* gcc.c-torture/compile/980506-1.x: Likewise.
	* gcc.c-torture/compile/981006-1.x: Likewise.
	* gcc.c-torture/compile/981022-1.x: Likewise.
	* gcc.c-torture/compile/981223-1.x: Likewise.
	* gcc.c-torture/compile/990617-1.x: Likewise.
	* gcc.c-torture/compile/mipscop-1.x: Likewise.
	* gcc.c-torture/compile/mipscop-2.x: Likewise.
	* gcc.c-torture/compile/mipscop-3.x: Likewise.
	* gcc.c-torture/compile/mipscop-4.x: Likewise.
	* gcc.c-torture/compile/simd-5.x: Likewise.

	* gcc.c-torture/compile/20021205-1.c: Remove bogus dg commands.

From-SVN: r67881
parent 2ac29877
2003-06-12 Mark Mitchell <mark@codesourcery.com>
* lib/gcc-dg.exp (dg-require-dll): New function.
(dg-xfail-if): Likewise.
* gcc.c-torture/compile/compile.exp: Use dg rather than c-torture
driver.
* gcc.c-torture/compile/20000804-1.c: Convert to dg format.
* gcc.c-torture/compile/20001205-1.c: Likewise.
* gcc.c-torture/compile/20001226-1.c: Likewise.
* gcc.c-torture/compile/20010518-2.c: Likewise.
* gcc.c-torture/compile/20020312-1.c: Likewise.
* gcc.c-torture/compile/20020604-1.c: Likewise.
* gcc.c-torture/compile/920501-12.c: Likewise.
* gcc.c-torture/compile/920501-4.c: Likewise.
* gcc.c-torture/compile/920520-1.c: Likewise.
* gcc.c-torture/compile/920521-1.c: Likewise.
* gcc.c-torture/compile/920625-1.c: Likewise.
* gcc.c-torture/compile/961203-1.c: Likewise.
* gcc.c-torture/compile/980506-1.c: Likewise.
* gcc.c-torture/compile/981006-1.c: Likewise.
* gcc.c-torture/compile/981022-1.c: Likewise.
* gcc.c-torture/compile/981223-1.c: Likewise.
* gcc.c-torture/compile/990617-1.c: Likewise.
* gcc.c-torture/compile/dll.c: Likewise.
* gcc.c-torture/compile/labels-3.c: Likewise.
* gcc.c-torture/compile/mipscop-1.c: Likewise.
* gcc.c-torture/compile/mipscop-2.c: Likewise.
* gcc.c-torture/compile/mipscop-3.c: Likewise.
* gcc.c-torture/compile/mipscop-4.c: Likewise.
* gcc.c-torture/compile/simd-5.c: Likewise.
* gcc.c-torture/compile/20000804-1.x: Remove.
* gcc.c-torture/compile/20001205-1.x: Likewise.
* gcc.c-torture/compile/20001226-1.x: Likewise.
* gcc.c-torture/compile/20010518-2.x: Likewise.
* gcc.c-torture/compile/20020312-1.x: Likewise.
* gcc.c-torture/compile/20020604-1.x: Likewise.
* gcc.c-torture/compile/920501-12.x: Likewise.
* gcc.c-torture/compile/920501-4.x: Likewise.
* gcc.c-torture/compile/920520-1.x: Likewise.
* gcc.c-torture/compile/920521-1.x: Likewise.
* gcc.c-torture/compile/920625-1.x: Likewise.
* gcc.c-torture/compile/961203-1.x: Likewise.
* gcc.c-torture/compile/980506-1.x: Likewise.
* gcc.c-torture/compile/981006-1.x: Likewise.
* gcc.c-torture/compile/981022-1.x: Likewise.
* gcc.c-torture/compile/981223-1.x: Likewise.
* gcc.c-torture/compile/990617-1.x: Likewise.
* gcc.c-torture/compile/mipscop-1.x: Likewise.
* gcc.c-torture/compile/mipscop-2.x: Likewise.
* gcc.c-torture/compile/mipscop-3.x: Likewise.
* gcc.c-torture/compile/mipscop-4.x: Likewise.
* gcc.c-torture/compile/simd-5.x: Likewise.
* gcc.c-torture/compile/20021205-1.c: Remove bogus dg commands.
2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr> 2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20030611-1.c: New test. * gcc.c-torture/execute/20030611-1.c: New test.
......
/* Copyright (C) 2000 Free Software Foundation */ /* This does not work on m68hc11 or h8300 due to the use of an asm
statement to force a 'long long' (64-bits) to go in a register. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
/* Copyright (C) 2000, 2003 Free Software Foundation */
__complex__ long long f () __complex__ long long f ()
{ {
int i[99]; int i[99];
......
# This does not work on m68hc11 or h8300 due to the use of an asm statement
# to force a 'long long' (64-bits) to go in a register.
if { [istarget "m6811-*-*"]
|| [istarget "m6812-*-*"]
|| [istarget "h8300-*-*"] } {
return 1
}
return 0
/* This does not work on m68hc11 due to the asm statement which forces
two 'long' (32-bits) variables to go in registers. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
static inline unsigned long rdfpcr(void) static inline unsigned long rdfpcr(void)
{ {
unsigned long tmp, ret; unsigned long tmp, ret;
......
# This does not work on m68hc11 due to the asm statement which
# forces two 'long' (32-bits) variables to go in registers.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1
}
return 0
/* This does not assemble on m68hc11 because the function is larger
than 64K. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */
/* This testcase exposed two branch shortening bugs on powerpc. */ /* This testcase exposed two branch shortening bugs on powerpc. */
#define C(a,b) \ #define C(a,b) \
......
# This does not assemble on m68hc11 because the function is larger
# than 64K.
global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1
}
# It doesn't work on Xtensa with -O0 because the function is larger
# than the range of a jump instruction (+- 128K) and the assembler
# does not yet relax jumps to indirect jumps.
set torture_eval_before_compile {
set compiler_conditional_xfail_data {
"jump beyond 128K not supported" \
"xtensa-*-*" \
{ "-O0" } \
{ "" }
}
}
return 0
/* { dg-do compile } */
/* This test fails on HC11/HC12 when it is compiled without -mshort because
the array is too large (INT_MAX/2 > 64K). Force to use 16-bit ints
for it. */
/* { dg-options "-w -mshort" { target m6811-*-* m6812-*-* } } */
/* Large static storage. */ /* Large static storage. */
#include <limits.h> #include <limits.h>
......
# This test fails on HC11/HC12 when it is compiled without -mshort because
# the array is too large (INT_MAX/2 > 64K). Force to use 16-bit ints for it.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
set options "-S -mshort"
} else {
set options "-S"
}
return 0
/* This does not compile on HC11/HC12 due to the asm which requires
two 32-bit registers. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* PR optimization/5892 */ /* PR optimization/5892 */
typedef struct { unsigned long a; unsigned int b, c; } A; typedef struct { unsigned long a; unsigned int b, c; } A;
typedef struct { unsigned long a; A *b; int c; } B; typedef struct { unsigned long a; A *b; int c; } B;
......
# This does not compile on HC11/HC12 due to the asm which requires
# two 32-bit registers.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1
}
return 0
/* The array is too big. */
/* { dg-do assemble { xfail h8300-*-* m6811-*-* m6812-*-* } } */
/* PR c/6957 /* PR c/6957
This testcase ICEd at -O2 on IA-32, because This testcase ICEd at -O2 on IA-32, because
(insn 141 139 142 (set (subreg:SF (reg:QI 72) 0) (insn 141 139 142 (set (subreg:SF (reg:QI 72) 0)
......
# The array is too big.
if { [istarget "h8300-*-*"] } {
return 1;
}
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1;
}
return 0
/* dg-do compile */
/* dg-options "-O3" */
typedef struct x x; typedef struct x x;
extern void *baz(char *); extern void *baz(char *);
struct x { char * (*bar) (int); }; struct x { char * (*bar) (int); };
......
/* This test fails on HC11/HC12 when it is compiled without -mshort because
the stack arrays are too large. Force to use 16-bit ints for it. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
x(x){ return 3 + x;} x(x){ return 3 + x;}
a(x){int y[994]; return 3 + x;} a(x){int y[994]; return 3 + x;}
b(x){int y[999]; return 2*(x + 3);} b(x){int y[999]; return 2*(x + 3);}
......
# This test fails on HC11/HC12 when it is compiled without -mshort because
# the stack arrays are too large. Force to use 16-bit ints for it.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
set options "-mshort"
}
return 0
/* This test fails on HC11/HC12 when it is compiled without -mshort because
the 'r0' array is too large. Force to use 16-bit ints for it. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
foo () foo ()
{ {
int r0[8186 ]; int r0[8186 ];
......
# This test fails on HC11/HC12 when it is compiled without -mshort because
# the 'r0' array is too large. Force to use 16-bit ints for it.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
set options "-mshort"
}
return 0
/* { dg-do compile { xfail m6811-*-* m6812-*-* } } */
f(){asm("%0"::"r"(1.5F));}g(){asm("%0"::"r"(1.5));} f(){asm("%0"::"r"(1.5F));}g(){asm("%0"::"r"(1.5));}
set options "-S"
# This does not work on m68hc11 due to the asm which forces a
# float or a double to go in a register.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1
}
return 0
/* { dg-do compile } */
f(){asm("f":::"cc");}g(x,y){asm("g"::"%r"(x), "r"(y));} f(){asm("f":::"cc");}g(x,y){asm("g"::"%r"(x), "r"(y));}
/* The problem on IA-64 is that if-conversion creates a sequence
(p17) cmp.geu p6, p7 = r48, r15
(p16) cmp.gtu p6, p7 = r48, r15
where p16 and p17 are complemenary, but the assembler DV validation
code doesn't recognize that p6 and p7 are complimentary, and so
we end up warning for a later use
(p6) addl r14 = 1, r0
(p7) mov r14 = r0
that appears to be a WAW violation. */
/* { dg-xfail-if "missing .pred.rel.mutex directive" "ia64-*-*" { "-O1" "-O2" "-O3" "-Os" } { "" } } */
typedef unsigned long int unsigned_word; typedef unsigned long int unsigned_word;
typedef signed long int signed_word; typedef signed long int signed_word;
typedef unsigned_word word; typedef unsigned_word word;
......
# The problem on IA-64 is that if-conversion creates a sequence
#
# (p17) cmp.geu p6, p7 = r48, r15
# (p16) cmp.gtu p6, p7 = r48, r15
#
# where p16 and p17 are complemenary, but the assembler DV validation
# code doesn't recognize that p6 and p7 are complimentary, and so
# we end up warning for a later use
#
# (p6) addl r14 = 1, r0
# (p7) mov r14 = r0
#
# that appears to be a WAW violation.
set torture_eval_before_compile {
set compiler_conditional_xfail_data {
"missing .pred.rel.mutex directive" \
"ia64-*-*" \
{ "-O1" "-O2" "-O3" "-Os" } \
{ "" }
}
}
return 0
/* The structure is too large for the xstormy16 - won't fit in 16
bits. */
/* { dg-do assemble { xfail xstormy16-*-* h8300-*-* m6811-*-* m6812-*-* } } */
struct s { struct s {
char a[0x32100000]; char a[0x32100000];
int x:30, y:30; int x:30, y:30;
......
# The structure is too large for the xstormy16 - won't fit in 16 bits.
if { [istarget "xstormy16-*-*"] } {
return 1;
}
if { [istarget "h8300-*-*"] } {
return 1
}
# Array 'a' in this test is too large to fit in 64K.
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"]} {
return 1
}
return 0
/* The arrays are too large for the xstormy16 - won't fit in 16 bits. */
/* { dg-do assemble { xfail xstormy16-*-* h8300-*-* m6811-*-* m6812-*-* } } */
unsigned char TIFFFax2DMode[20][256]; unsigned char TIFFFax2DMode[20][256];
unsigned char TIFFFax2DNextState[20][256]; unsigned char TIFFFax2DNextState[20][256];
unsigned char TIFFFaxUncompAction[20][256]; unsigned char TIFFFaxUncompAction[20][256];
......
# The arrays are too large for the xstormy16 - won't fit in 16 bits.
if { [istarget "xstormy16-*-*"] } {
return 1;
}
if { [istarget "h8300-*-*"] } {
return 1;
}
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
return 1
}
return 0
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
used uninitialized. used uninitialized.
This is broken in egcs 1998/10/06 for mips in pic mode. */ This is broken in egcs 1998/10/06 for mips in pic mode. */
/* { dg-do compile } */ /* { dg-do assemble } */
/* For MIPS at least, pic is needed to trigger the problem. */
/* { dg-options "-w -Wuninitialized -Werror -fpic" } */
/* { dg-options "-w -Wuninitialized -Werror" { target rs6000-*-aix* powerpc*-*-aix* arm*-*-* xscale*-*-* strongarm*-*-* fr30-*-* sh-*-hms sh-*-coff h8300*-*-* mn10200*-*-* cris-*-elf* cris-*-aout* mmix-*-* } } */
int foo (int a, int b) int foo (int a, int b)
{ {
......
# For MIPS at least, pic is needed to trigger the problem.
if { [istarget rs6000-*-aix*]
|| [istarget powerpc*-*-aix*]
|| [istarget arm*-*-*]
|| [istarget xscale-*-*]
|| [istarget strongarm*-*-*]
|| [istarget fr30-*-*]
|| [istarget sh-*-hms]
|| [istarget sh-*-coff]
|| [istarget h8300*-*-*]
|| [istarget mn10200*-*-*]
|| [istarget cris-*-elf*]
|| [istarget cris-*-aout*]
|| [istarget mmix-*-*]
} {
set options "-Wuninitialized -Werror"
} else {
set options "-Wuninitialized -Werror -fpic"
}
return 0
...@@ -4,6 +4,6 @@ int x, y; ...@@ -4,6 +4,6 @@ int x, y;
int main () int main ()
{ {
(x ?: y) = 0; (x ?: y) = 0; /* { dg-bogus "lvalue" "" { xfail *-*-* } } */
return 0; return 0;
} }
set torture_compile_xfail "*-*-*"
return 0
/* The problem on IA-64 is that the assembler emits
Warning: Additional NOP may be necessary to workaround Itanium
processor A/B step errata
This can be fixed by adding "-mb-step" to the command line, which
does in fact add the extra nop. */
/* { dg-options "-w -mb-step" { target ia64-*-* } } */
__complex__ float __complex__ float
func (__complex__ float x) func (__complex__ float x)
{ {
......
# The problem on IA-64 is that the assembler emits
#
# Warning: Additional NOP may be necessary to workaround Itanium
# processor A/B step errata
#
# This can be fixed by adding "-mb-step" to the command line, which
# does in fact add the extra nop, if someone can tell me how to do
# that for a c-torture compile test.
set torture_eval_before_compile {
set compiler_conditional_xfail_data {
"need -mb-step" \
"ia64-*-*" \
{ "-O2" "-O3" "-Os" } \
{ "" }
}
}
return 0
/* 0x70000000 is too large a constant to become a pointer on
xstormy16. */
/* { dg-do assemble { xfail xstormy16-*-* } } */
int main() int main()
{ {
......
# 0x70000000 is too large a constant to become a pointer on xstormy16.
if { [istarget "xstormy16-*-*"] } {
return 1;
}
return 0
# Expect driver script for GCC Regression Tests # Expect driver script for GCC Regression Tests
# Copyright (C) 1993, 1995, 1997 Free Software Foundation # Copyright (C) 1993, 1995, 1997, 2003 Free Software Foundation
# #
# This file is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
...@@ -18,18 +18,17 @@ ...@@ -18,18 +18,17 @@
# These tests come from Torbjorn Granlund's (tege@cygnus.com) # These tests come from Torbjorn Granlund's (tege@cygnus.com)
# C torture test suite, and other contributors. # C torture test suite, and other contributors.
if $tracelevel then { # Load support procs.
strace $tracelevel load_lib gcc-dg.exp
}
# load support procs # Initialize `dg'.
load_lib c-torture.exp dg-init
foreach testcase [glob -nocomplain $srcdir/$subdir/*.c] { # Main loop.
# If we're only testing specific files and this isn't one of them, skip it. set saved-dg-do-what-default ${dg-do-what-default}
if ![runtest_file_p $runtests $testcase] then { set dg-do-what-default "assemble"
continue gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-w"
} set dg-do-what-default ${saved-dg-do-what-default}
c-torture $testcase # All done.
} dg-finish
/* { dg-require-dll "" } */
__declspec (dllimport) int foo; __declspec (dllimport) int foo;
extern int (* import) (void) __attribute__((dllimport)); extern int (* import) (void) __attribute__((dllimport));
int func2 (void) __attribute__((dllexport)); int func2 (void) __attribute__((dllexport));
......
/* This test does not compile on mips-irix6 using the native assembler,
though it does work with gas. See PR6200. Since we cannot (???)
distinguish which assembler is being used, always pass -S for
irix. */
/* { dg-options "-w -S" { target mips*-*-irix* } } */
/* Verify that we can narrow the storage associated with label diffs. */ /* Verify that we can narrow the storage associated with label diffs. */
int foo (int a) int foo (int a)
......
# This test does not compile on mips-irix6 using the native assembler,
# though it does work with gas. See PR6200. Since we cannot (???)
# distinguish which assembler is being used, always pass -S for irix.
if { [istarget "mips*-*-irix*"] } { set options "-S" }
return 0
/* { dg-do assemble {target *mips*-*-* } } */
register unsigned int cp0count asm ("$c0r1"); register unsigned int cp0count asm ("$c0r1");
int int
......
global target_triplet
if { ![istarget "*mips*"] } {
return 1
} else {
set torture_compile_xfail "$target_triplet"
}
return 0
/* { dg-do assemble {target *mips*-*-* } } */
register unsigned int c3r1 asm ("$c3r1"); register unsigned int c3r1 asm ("$c3r1");
extern unsigned int b, c; extern unsigned int b, c;
......
global target_triplet
if { ![istarget "*mips*"] } {
return 1
} else {
set torture_compile_xfail "$target_triplet"
}
return 0
/* { dg-do assemble {target *mips*-*-* } } */
register unsigned int c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2"); register unsigned int c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2");
extern unsigned int b, c; extern unsigned int b, c;
......
global target_triplet
if { ![istarget "*mips*"] } {
return 1
} else {
set torture_compile_xfail "$target_triplet"
}
return 0
/* { dg-do assemble {target *mips*-*-* } } */
register unsigned long c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2"); register unsigned long c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2");
extern unsigned long b, c; extern unsigned long b, c;
......
global target_triplet
if { ![istarget "*mips*"] } {
return 1
} else {
set torture_compile_xfail "$target_triplet"
}
return 0
/* h8300 does not have long long */
/* PowerPC-64 doesn't handle this; see PR target/9680 */
/* { dg-do assemble { xfail h8300-*-* powerpc64-*-* } } */
/* On SPARC64/SPARC-V9 it fails, except with -m32. */
/* { dg-xfail-if "PR target/9200" { "sparc64-*-*" "sparcv9-*-*" } { "*" } { "-m32" } } */
/* On regular SPARC it doesn't fail, except with -m64. */
/* { dg-xfail-if "PR target/9200" { "sparc*-*-*" } { "-m64" } { "" } } */
#define vector64 __attribute__((vector_size(8))) #define vector64 __attribute__((vector_size(8)))
main(){ main(){
......
# h8300 does not have long long
if { [istarget "h8300-*-*"] } {
return 1;
}
if { [istarget "sparc64-*-*"] || [istarget "sparcv9-*-*"] } {
# On SPARC64/SPARC-V9 it fails, except with -m32.
set torture_eval_before_compile {
global compiler_conditional_xfail_data
set compiler_conditional_xfail_data {
"PR target/9200" \
{ "*-*-*" } \
{ "*" } \
{ "-m32" }
}
}
} elseif { [istarget "sparc-*-*"] } {
# On regular SPARC it doesn't fail, except with -m64.
set torture_eval_before_compile {
global compiler_conditional_xfail_data
set compiler_conditional_xfail_data {
"PR target/9200" \
{ "*-*-*" } \
{ "-m64" } \
{ "" }
}
}
}
return 0
...@@ -295,6 +295,30 @@ proc dg-require-gc-sections { args } { ...@@ -295,6 +295,30 @@ proc dg-require-gc-sections { args } {
} }
} }
# If this target does not support DLL attributes skip this test.
proc dg-require-dll { args } {
global target_triplet
# As a special case, the mcore-*-elf supports dllimport/dllexport.
if { [string match "mcore-*-elf" $target_triplet] } {
return
}
# PE/COFF targets support dllimport/dllexport.
if { [gcc_target_object_format] == "pe" } {
return
}
upvar dg-do-what dg-do-what
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
}
# Like check_conditional_xfail, but callable from a dg test.
proc dg-xfail-if { args } {
eval check_conditional_xfail $args
}
# We need to make sure that additional_files and additional_sources # We need to make sure that additional_files and additional_sources
# are both cleared out after every test. It is not enough to clear # are both cleared out after every test. It is not enough to clear
# them out *before* the next test run because gcc-target-compile gets # them out *before* the next test run because gcc-target-compile gets
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment