1; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | llvm-readobj -macho-data-in-code | FileCheck %s 2 3; There should not be a data-in-code load command (type 0x29) for x86_64 4; jump tables, even though they are in the text section. 5; CHECK-NOT: DataInCode { 6 7define void @foo(i32* %ptr) nounwind ssp { 8 %tmp = load i32, i32* %ptr, align 4 9 switch i32 %tmp, label %default [ 10 i32 11, label %bb0 11 i32 10, label %bb1 12 i32 8, label %bb2 13 i32 4, label %bb3 14 i32 2, label %bb4 15 i32 6, label %bb5 16 i32 9, label %bb6 17 i32 15, label %bb7 18 i32 1, label %bb8 19 i32 3, label %bb9 20 i32 5, label %bb10 21 i32 30, label %bb11 22 i32 31, label %bb12 23 i32 13, label %bb13 24 i32 14, label %bb14 25 i32 20, label %bb15 26 i32 19, label %bb16 27 i32 17, label %bb17 28 i32 18, label %bb18 29 i32 21, label %bb19 30 i32 22, label %bb20 31 i32 16, label %bb21 32 i32 24, label %bb22 33 i32 25, label %bb23 34 i32 26, label %bb24 35 i32 27, label %bb25 36 i32 28, label %bb26 37 i32 23, label %bb27 38 i32 12, label %bb28 39 ] 40 41default: 42 br label %exit 43bb0: 44 br label %exit 45bb1: 46 br label %exit 47bb2: 48 br label %exit 49bb3: 50 br label %exit 51bb4: 52 br label %exit 53bb5: 54 br label %exit 55bb6: 56 br label %exit 57bb7: 58 br label %exit 59bb8: 60 br label %exit 61bb9: 62 br label %exit 63bb10: 64 br label %exit 65bb11: 66 br label %exit 67bb12: 68 br label %exit 69bb13: 70 br label %exit 71bb14: 72 br label %exit 73bb15: 74 br label %exit 75bb16: 76 br label %exit 77bb17: 78 br label %exit 79bb18: 80 br label %exit 81bb19: 82 br label %exit 83bb20: 84 br label %exit 85bb21: 86 br label %exit 87bb22: 88 br label %exit 89bb23: 90 br label %exit 91bb24: 92 br label %exit 93bb25: 94 br label %exit 95bb26: 96 br label %exit 97bb27: 98 br label %exit 99bb28: 100 br label %exit 101 102 103exit: 104 105 ret void 106} 107 108