OSDN Git Service

* gcc.target/arm/long-calls-1.c: Tolerate the lack of sibling
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / arm / long-calls-1.c
index 7c2e7fe..587f6d6 100644 (file)
@@ -38,8 +38,14 @@ DO_TESTS_CALL_ATTR (weak_, EXTERN_CALL, weak)
 DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
 
 
 DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
 
 
-/* Calls to remote_* should honor the call type sttribute,
-   with "short" being the default.  */
+/* Calls to remote_* should honor the call type attribute,
+   with "short" being the default.
+
+   In the regular expressions below:
+   
+   * We allow both "b" and "bl" in some cases to allow for the
+     possibility of sibling calls.  As of this writing, GCC does not
+     use sibling calls in Thumb-2 mode.  */
 
 /* { dg-final { scan-assembler "\tbl\tremote_n1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tremote_n2\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tremote_n1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tremote_n2\n" } } */
@@ -59,46 +65,46 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
    should be short.  */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_n1\n" } } */
    should be short.  */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_n3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_n3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_l1\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l1\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_l3\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tstrong_l2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_l3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_s1\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstrong_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_s3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstrong_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstrong_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstrong_s3\n" } } */
 
 
 
 
-/* Calls to weak_* should honor the call type sttribute,
+/* Calls to weak_* should honor the call type attribute,
    with "short" being the default.  */
 
 /* { dg-final { scan-assembler "\tbl\tweak_n1\n" } } */
    with "short" being the default.  */
 
 /* { dg-final { scan-assembler "\tbl\tweak_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_n3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_n3\n" } } */
 
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l1\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l2\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tweak_s1\n" } } */
 
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l1\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l2\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tweak_l3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tweak_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_s3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tweak_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tweak_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tweak_s3\n" } } */
 
 
 /* Calls to static_*2 calls should honor the call type attribute,
 
 
 /* Calls to static_*2 calls should honor the call type attribute,
@@ -106,21 +112,21 @@ DO_TESTS_CALL_ATTR (static_, STATIC_CALL,)
    should be short.  */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_n1\n" } } */
    should be short.  */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_n1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_n2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_n3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_n3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_n3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_n3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_l1\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_l1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l1\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tstatic_l2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_l3\n" } } */
 /* { dg-final { scan-assembler-not "\tbl?\tstatic_l2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_l3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_l3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_l3\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_s1\n" } } */
 
 /* { dg-final { scan-assembler "\tbl\tstatic_s1\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s1\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s1\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_s2\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s2\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s2\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_s3\n" } } */
 /* { dg-final { scan-assembler "\tbl\tstatic_s3\n" } } */
-/* { dg-final { scan-assembler "\tb\tstatic_s3\n" } } */
+/* { dg-final { scan-assembler "\tbl?\tstatic_s3\n" } } */