Test DLL attribute support.
authorNick Clifton <nickc@cygnus.com>
Wed, 30 Jun 1999 01:48:58 +0000 (01:48 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Wed, 30 Jun 1999 01:48:58 +0000 (01:48 +0000)
From-SVN: r27843

gcc/testsuite/gcc.c-torture/ChangeLog
gcc/testsuite/gcc.c-torture/compile/dll.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/dll.x [new file with mode: 0644]

index 60f2943ab00938bf76c1d5a68985b33e82a85da8..71e83c6e78d8349dc3c13e173a14bb431f08ca7e 100644 (file)
@@ -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 (file)
index 0000000..bf0d154
--- /dev/null
@@ -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 (file)
index 0000000..63a1e18
--- /dev/null
@@ -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