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