diff --git a/gcc/testsuite/gcc.c-torture/ChangeLog b/gcc/testsuite/gcc.c-torture/ChangeLog index 60f2943ab00938bf76c1d5a68985b33e82a85da8..71e83c6e78d8349dc3c13e173a14bb431f08ca7e 100644 --- a/gcc/testsuite/gcc.c-torture/ChangeLog +++ b/gcc/testsuite/gcc.c-torture/ChangeLog @@ -1,3 +1,10 @@ +1999-06-23 Nick Clifton <nickc@cygnus.com> + + * compile/dll.c: New test case. Check that dll attributes + compile. + * compile/dll.x: Only support the dll.c test on ports that + use the COFF/PE file format. + 1999-05-25 Nick Clifton <nickc@cygnus.com> * execute/bf-sign-2.c: Explicitly declare signed bitfields as diff --git a/gcc/testsuite/gcc.c-torture/compile/dll.c b/gcc/testsuite/gcc.c-torture/compile/dll.c new file mode 100644 index 0000000000000000000000000000000000000000..bf0d1544ad051a3a6777122138b82dc30689f58b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/dll.c @@ -0,0 +1,21 @@ +__declspec (dllimport) int foo; +extern int (* import) (void) __attribute__((dllimport)); +int func2 (void) __attribute__((dllexport)); + +__declspec(dllexport) int +func1 (int a) +{ + return a + foo; +} + +static int +internal (void) +{ + return 77; +} + +int +func2 (void) +{ + return import (); +} diff --git a/gcc/testsuite/gcc.c-torture/compile/dll.x b/gcc/testsuite/gcc.c-torture/compile/dll.x new file mode 100644 index 0000000000000000000000000000000000000000..63a1e180e2c3d4fff9402da92d318cbbbd02152f --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/dll.x @@ -0,0 +1,20 @@ +# This test examines the attribute support for DLLs. +# Only COFF/PE formats support DLLs, (plus, as a special case +# the mcore-elf toolchain), so the code here tries to determine +# the file format and decide whether the test should be marked +# as unsupported. + +set torture_eval_before_compile { + + if ![istarget "mcore-*-elf"] { + + set objformat [gcc_target_object_format] + + if { $objformat != "pe" } { + unsupported "dll.c" + return 1 + } + } +} + +return 0