gdb: Convert language la_word_break_characters field to a method
[deliverable/binutils-gdb.git] / ld / testsuite / ld-elfvsb / sh1.c
index 5a140a8c3e01d18139693dffe11f9f1cc195259a..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.  */
 
@@ -180,6 +190,9 @@ shlib_check ()
 #endif
 
 #if defined (HIDDEN_UNDEF_TEST) || defined (PROTECTED_UNDEF_TEST)
+#ifdef WEAK_TEST
+#pragma weak visibility
+#endif
 extern int visibility ();
 #else
 int
@@ -190,7 +203,7 @@ visibility ()
 #endif
 
 #ifdef HIDDEN_NORMAL_TEST
-asm (".hidden visibility_normal");
+__asm__ (".hidden visibility_normal");
 
 int
 visibility_normal ()
@@ -243,13 +256,16 @@ visibility_funptr ()
 }
 
 #if defined (HIDDEN_UNDEF_TEST) || defined (PROTECTED_UNDEF_TEST)
+#ifdef WEAK_TEST
+#pragma weak visibility_var
+#endif
 extern int visibility_var;
 #else
 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
@@ -309,14 +325,97 @@ 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
-asm (".protected visibility");
-asm (".protected visibility_var");
+#if defined (PROTECTED_TEST) || defined (PROTECTED_UNDEF_TEST) || defined (PROTECTED_WEAK_TEST)
+__asm__ (".protected visibility");
+__asm__ (".protected visibility_var");
+#endif
 #endif
 
-#ifdef WEAK_TEST
-asm (".weak visibility");
-asm (".weak visibility_var");
+#ifdef HIDDEN_NORMAL_TEST
+int shlib_visibility_com;
+__asm__ (".hidden shlib_visibility_com");
+
+int
+shlib_visibility_checkcom ()
+{
+  return shlib_visibility_com == 0;
+}
+
+int
+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 ()
+{
+  return 1;
+}
+
+int
+shlib_visibility_checkweak ()
+{
+  return 1;
+}
+#endif
+
+#ifdef PROTECTED_TEST
+#ifdef SHARED
+int shared_data = 100;
+#else
+extern int shared_data;
+#endif
+int *
+shared_data_p ()
+{
+  return &shared_data;
+}
+int
+shared_func ()
+{
+  return 100;
+}
+void *
+shared_func_p ()
+{
+  return shared_func;
+}
 #endif
This page took 0.027927 seconds and 4 git commands to generate.