1 // { dg-do assemble { target arm-*-*pe } } 2 // Microsoft's MSVC 2.0 allows dllimport followed by dllexport for variables, 3 // but does not allow dllexport followed by dllimport. 4 // 5 // Switching between dll{export,import} works for functions. 6 // We test for that too (by ensuring no error is produced). 7 8 __declspec (dllimport) int foo1 (); 9 __declspec (dllexport) int foo1 (); 10 11 __declspec (dllexport) int foo2 (); 12 __declspec (dllimport) int foo2 (); 13 14 __declspec (dllimport) int bar1; 15 __declspec (dllexport) int bar1; 16 17 __declspec (dllexport) int bar2; // { dg-error "" } previously declared 18 __declspec (dllimport) int bar2; // { dg-error "" } redefinition 19