annotate gcc/testsuite/gcc.dg/darwin-weakimport-3.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile { target *-*-darwin* } } */
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
2
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
3 /* Here we want to test if "foo" gets placed into a coalesced
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
4 section (it should not).
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
5
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
6 However, for i386, and PIC code we have a "get_pc thunk" that
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
7 is (correctly) placed in a coalesced section when using an older
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
8 linker - also unwind tables are emitted into coalesced.
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
9
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
10 With modern linkers this is moot, since even weak symbols
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
11 are emitted into the regular sections.
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
12
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
13 To avoid the unwind tables -fno-asynchronous-unwind-tables.
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
14 To ensure that we emit code for an older linker -mtarget-linker
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
15 To avoid the get_pc thunk optimise at least O1. */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
16
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
17 /* { dg-options "-fno-asynchronous-unwind-tables -O1 -mtarget-linker 85.2" } */
111
kono
parents:
diff changeset
18 /* { dg-require-weak "" } */
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 /* { dg-final { scan-assembler-not "coalesced" } } */
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 extern void foo(void) __attribute__((weak_import));
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 void foo(void)
kono
parents:
diff changeset
25 {
kono
parents:
diff changeset
26 }