• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Test that symbols starting with '?' are not affected by IR mangling.
2
3; RUN: llc -mtriple i686-pc-win32 < %s | FileCheck %s --check-prefix=COFF
4; RUN: llc -mtriple x86_64-pc-win32 < %s | FileCheck %s --check-prefix=COFF64
5; RUN: llc -mtriple i686-linux-gnu < %s | FileCheck %s --check-prefix=ELF
6; RUN: llc -mtriple i686-apple-darwin < %s | FileCheck %s --check-prefix=MACHO
7
8; Currently all object files allow escaping private symbols, but eventually we
9; might want to reject that.
10
11; COFF: calll "?withescape@A@@QBEXXZ"
12; COFF: calll "?withquestion@A@@QBEXXZ"
13; COFF: calll "L?privatequestion@A@@QBEXXZ"
14; COFF: calll "L?privatequestionfast@A@@QBEXXZ"
15; COFF: calll "?escapedprivate@A@@QBEXXZ"
16
17; COFF64: callq "?withescape@A@@QBEXXZ"
18; COFF64: callq "?withquestion@A@@QBEXXZ"
19; COFF64: callq ".L?privatequestion@A@@QBEXXZ"
20; COFF64: callq ".L?privatequestionfast@A@@QBEXXZ"
21; COFF64: callq "?escapedprivate@A@@QBEXXZ"
22
23; ELF: calll "?withescape@A@@QBEXXZ"
24; ELF: calll "?withquestion@A@@QBEXXZ"
25; ELF: calll ".L?privatequestion@A@@QBEXXZ"
26; ELF: calll ".L?privatequestionfast@A@@QBEXXZ"
27; ELF: calll "?escapedprivate@A@@QBEXXZ"
28
29; MACHO: calll "?withescape@A@@QBEXXZ"
30; MACHO: calll "_?withquestion@A@@QBEXXZ"
31; MACHO: calll "l_?privatequestion@A@@QBEXXZ"
32; MACHO: calll "l_?privatequestionfast@A@@QBEXXZ"
33; MACHO: calll "?escapedprivate@A@@QBEXXZ"
34
35%struct.A = type {}
36
37define i32 @main() {
38entry:
39  tail call void @"\01?withescape@A@@QBEXXZ"(%struct.A* null)
40  tail call void @"?withquestion@A@@QBEXXZ"(%struct.A* null)
41  tail call void @"?privatequestion@A@@QBEXXZ"(%struct.A* null)
42  tail call x86_fastcallcc void @"?privatequestionfast@A@@QBEXXZ"(%struct.A* null)
43  tail call void @"\01?escapedprivate@A@@QBEXXZ"(%struct.A* null)
44  ret i32 0
45}
46
47declare void @"\01?withescape@A@@QBEXXZ"(%struct.A*)
48declare void @"?withquestion@A@@QBEXXZ"(%struct.A*)
49
50define private void @"?privatequestion@A@@QBEXXZ"(%struct.A*) {
51  ret void
52}
53
54define private x86_fastcallcc void @"?privatequestionfast@A@@QBEXXZ"(%struct.A*) {
55  ret void
56}
57
58define private void @"\01?escapedprivate@A@@QBEXXZ"(%struct.A*) {
59  ret void
60}
61