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 37 define i32 @main() { 38 entry: 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 47 declare void @"\01?withescape@A@@QBEXXZ"(%struct.A*) 48 declare void @"?withquestion@A@@QBEXXZ"(%struct.A*) 49 50 define private void @"?privatequestion@A@@QBEXXZ"(%struct.A*) { 51 ret void 52 } 53 54 define private x86_fastcallcc void @"?privatequestionfast@A@@QBEXXZ"(%struct.A*) { 55 ret void 56 } 57 58 define private void @"\01?escapedprivate@A@@QBEXXZ"(%struct.A*) { 59 ret void 60 } 61