Use __asm__ rather than asm in ld testsuite
[deliverable/binutils-gdb.git] / ld / testsuite / ld-elfvsb / sh1.c
index 2b9b9eeb52308e27ea872bdd6fc6db0582959bb5..1aba63c75412fc94dc240494f6e0e89d6b79fd33 100644 (file)
@@ -13,7 +13,15 @@ extern int mainvar;
 /* This variable is defined in the shared library, and overridden by
    the main program.  */
 #ifndef XCOFF_TEST
+#ifdef SHARED
+/* SHARED is defined if we are compiling with -fpic/-fPIC.  */
 int overriddenvar = -1;
+#else
+/* Without -fpic, newer versions of gcc assume that we are not
+   compiling for a shared library, and thus that overriddenvar is
+   local.  */
+extern int overriddenvar;
+#endif
 #endif
 
 /* This variable is defined in the shared library.  */
@@ -76,12 +84,14 @@ shlib_shlibcall2 ()
   return shlib_overriddencall2 ();
 }
 
+#ifdef SHARED
 int
 shlib_overriddencall2 ()
 {
   return 7;
 }
 #endif
+#endif
 
 /* This function calls a function defined by the main program.  */
 
@@ -193,7 +203,7 @@ visibility ()
 #endif
 
 #ifdef HIDDEN_NORMAL_TEST
-asm (".hidden visibility_normal");
+__asm__ (".hidden visibility_normal");
 
 int
 visibility_normal ()
@@ -255,7 +265,7 @@ int visibility_var = 2;
 #endif
 
 #ifdef HIDDEN_NORMAL_TEST
-asm (".hidden visibility_var_normal");
+__asm__ (".hidden visibility_var_normal");
 
 int visibility_var_normal = 2;
 #endif
@@ -315,18 +325,18 @@ visibility_varval ()
 }
 
 #if defined (HIDDEN_TEST) || defined (HIDDEN_UNDEF_TEST)
-asm (".hidden visibility");
-asm (".hidden visibility_var");
+__asm__ (".hidden visibility");
+__asm__ (".hidden visibility_var");
 #else
 #if defined (PROTECTED_TEST) || defined (PROTECTED_UNDEF_TEST) || defined (PROTECTED_WEAK_TEST)
-asm (".protected visibility");
-asm (".protected visibility_var");
+__asm__ (".protected visibility");
+__asm__ (".protected visibility_var");
 #endif
 #endif
 
 #ifdef HIDDEN_NORMAL_TEST
 int shlib_visibility_com;
-asm (".hidden shlib_visibility_com");
+__asm__ (".hidden shlib_visibility_com");
 
 int
 shlib_visibility_checkcom ()
@@ -339,6 +349,37 @@ shlib_visibility_checkweak ()
 {
   return 1;
 }
+#elif defined (HIDDEN_WEAK_TEST)
+#pragma weak shlib_visibility_undef_var_weak
+extern int shlib_visibility_undef_var_weak;
+__asm__ (".hidden shlib_visibility_undef_var_weak");
+
+#pragma weak shlib_visibility_undef_func_weak
+extern int shlib_visibility_undef_func_weak ();
+__asm__ (".hidden shlib_visibility_undef_func_weak");
+
+#pragma weak shlib_visibility_var_weak
+extern int shlib_visibility_var_weak;
+__asm__ (".hidden shlib_visibility_var_weak");
+
+#pragma weak shlib_visibility_func_weak
+extern int shlib_visibility_func_weak ();
+__asm__ (".hidden shlib_visibility_func_weak");
+
+int
+shlib_visibility_checkcom ()
+{
+  return 1;
+}
+
+int
+shlib_visibility_checkweak ()
+{
+  return &shlib_visibility_undef_var_weak == NULL
+        && &shlib_visibility_undef_func_weak == NULL
+        && &shlib_visibility_func_weak == NULL
+        && &shlib_visibility_var_weak == NULL;
+}
 #else
 int
 shlib_visibility_checkcom ()
@@ -354,7 +395,11 @@ shlib_visibility_checkweak ()
 #endif
 
 #ifdef PROTECTED_TEST
+#ifdef SHARED
 int shared_data = 100;
+#else
+extern int shared_data;
+#endif
  
 int *
 shared_data_p ()
This page took 0.027659 seconds and 4 git commands to generate.