| OLD | NEW |
| 1 ; Test of global redzone layout | 1 ; Test of global redzone layout |
| 2 | 2 |
| 3 ; REQUIRES: allow_dump | 3 ; REQUIRES: allow_dump |
| 4 | 4 |
| 5 ; RUN: %p2i -i %s --args -threads=0 -fsanitize-address \ | 5 ; RUN: %p2i -i %s --args -threads=0 -fsanitize-address \ |
| 6 ; RUN: | FileCheck %s | 6 ; RUN: | FileCheck %s |
| 7 ; RUN: %p2i -i %s --args -verbose=global_init,inst -threads=0 \ | 7 ; RUN: %p2i -i %s --args -verbose=global_init,inst -threads=0 \ |
| 8 ; RUN: -fsanitize-address | FileCheck --check-prefix=DUMP %s | 8 ; RUN: -fsanitize-address | FileCheck --check-prefix=DUMP %s |
| 9 | 9 |
| 10 ; The array of redzones | 10 ; The array of redzones |
| 11 | 11 |
| 12 ; DUMP-LABEL: ========= Instrumented Globals ========= | 12 ; DUMP-LABEL: ========= Instrumented Globals ========= |
| 13 ; DUMP: @__$rz0 = internal constant <{ i32, i32, i32, i32, i32, i32 }> | 13 ; DUMP: @__$rz_array = internal constant <{ i32, i32, i32, i32, i32, i32 }> |
| 14 ; DUMP: <{ i32 ptrtoint ([32 x i8]* @__$rz2 to i32), i32 ptrtoint ([32 x
i8]* @__$rz3 to i32), | 14 ; DUMP: <{ i32 ptrtoint ([32 x i8]* @__$rz0 to i32), i32 ptrtoint ([32 x
i8]* @__$rz1 to i32), |
| 15 ; DUMP: i32 ptrtoint ([32 x i8]* @__$rz4 to i32), i32 ptrtoint ([32 x i8
]* @__$rz5 to i32), | 15 ; DUMP: i32 ptrtoint ([32 x i8]* @__$rz2 to i32), i32 ptrtoint ([32 x i8
]* @__$rz3 to i32), |
| 16 ; DUMP: i32 ptrtoint ([32 x i8]* @__$rz6 to i32), i32 ptrtoint ([32 x i8
]* @__$rz7 to i32) }> | 16 ; DUMP: i32 ptrtoint ([32 x i8]* @__$rz4 to i32), i32 ptrtoint ([32 x i8
]* @__$rz5 to i32) }> |
| 17 ; DUMP-NEXT: @__$rz1 = internal constant [4 x i8] c"\06\00\00\00"
| |
| 18 | 17 |
| 19 ; CHECK-LABEL: .type __$rz0,%object | 18 ; (SPACE is 32 ascii) |
| 19 ; DUMP-NEXT: @__$rz_sizes = internal constant <{ [4 x i8], [4 x i8], [4 x i8], [
4 x i8], [4 x i8], |
| 20 ; DUMP-SAME: [4 x i8] }> <{ [4 x i8] c" \00\00\00", [4 x i8] c" \00\00\00", [4 x
i8] c" \00\00\00", |
| 21 ; DUMP-SAME: [4 x i8] c" \00\00\00", [4 x i8] c" \00\00\00", [4 x i8] c" \00\00\
00" }> |
| 22 |
| 23 ; CHECK-LABEL: .type __$rz_array,%object |
| 20 ; CHECK-NEXT: .section .rodata | 24 ; CHECK-NEXT: .section .rodata |
| 21 ; CHECK-NEXT: __$rz0: | 25 ; CHECK-NEXT: __$rz_array: |
| 26 ; CHECK-NEXT: .long __$rz0 |
| 27 ; CHECK-NEXT: .long __$rz1 |
| 22 ; CHECK-NEXT: .long __$rz2 | 28 ; CHECK-NEXT: .long __$rz2 |
| 23 ; CHECK-NEXT: .long __$rz3 | 29 ; CHECK-NEXT: .long __$rz3 |
| 24 ; CHECK-NEXT: .long __$rz4 | 30 ; CHECK-NEXT: .long __$rz4 |
| 25 ; CHECK-NEXT: .long __$rz5 | 31 ; CHECK-NEXT: .long __$rz5 |
| 26 ; CHECK-NEXT: .long __$rz6 | 32 ; CHECK-LABEL: .type __$rz_sizes,%object |
| 27 ; CHECK-NEXT: .long __$rz7 | |
| 28 ; CHECK-LABEL: .type __$rz1,%object | |
| 29 ; CHECK-NEXT: .section .rodata | 33 ; CHECK-NEXT: .section .rodata |
| 30 ; CHECK-NEXT: __$rz1: | 34 ; CHECK-NEXT: __$rz_sizes: |
| 31 ; CHECK-NEXT: .byte 6 | 35 ; CHECK-NEXT: .byte 32 |
| 32 ; CHECK-NEXT: .byte 0 | 36 ; CHECK-NEXT: .byte 0 |
| 33 ; CHECK-NEXT: .byte 0 | 37 ; CHECK-NEXT: .byte 0 |
| 34 ; CHECK-NEXT: .byte 0 | 38 ; CHECK-NEXT: .byte 0 |
| 39 ; CHECK-NEXT: .byte 32 |
| 40 ; CHECK-NEXT: .byte 0 |
| 41 ; CHECK-NEXT: .byte 0 |
| 42 ; CHECK-NEXT: .byte 0 |
| 43 ; CHECK-NEXT: .byte 32 |
| 44 ; CHECK-NEXT: .byte 0 |
| 45 ; CHECK-NEXT: .byte 0 |
| 46 ; CHECK-NEXT: .byte 0 |
| 47 ; CHECK-NEXT: .byte 32 |
| 48 ; CHECK-NEXT: .byte 0 |
| 49 ; CHECK-NEXT: .byte 0 |
| 50 ; CHECK-NEXT: .byte 0 |
| 51 ; CHECK-NEXT: .byte 32 |
| 52 ; CHECK-NEXT: .byte 0 |
| 53 ; CHECK-NEXT: .byte 0 |
| 54 ; CHECK-NEXT: .byte 0 |
| 55 ; CHECK-NEXT: .byte 32 |
| 56 ; CHECK-NEXT: .byte 0 |
| 57 ; CHECK-NEXT: .byte 0 |
| 58 ; CHECK-NEXT: .byte 0 |
| 35 | 59 |
| 36 ; A zero-initialized global | 60 ; A zero-initialized global |
| 37 @zeroInitGlobal = internal global [32 x i8] zeroinitializer | 61 @zeroInitGlobal = internal global [32 x i8] zeroinitializer |
| 38 | 62 |
| 39 ; DUMP-NEXT: @__$rz2 = internal global [32 x i8] zeroinitializer | 63 ; DUMP-NEXT: @__$rz0 = internal global [32 x i8] zeroinitializer |
| 40 ; DUMP-NEXT: @zeroInitGlobal = internal global [32 x i8] zeroinitializer | 64 ; DUMP-NEXT: @zeroInitGlobal = internal global [32 x i8] zeroinitializer |
| 41 ; DUMP-NEXT: @__$rz3 = internal global [32 x i8] zeroinitializer | 65 ; DUMP-NEXT: @__$rz1 = internal global [32 x i8] zeroinitializer |
| 42 | 66 |
| 43 ; CHECK-LABEL: .type __$rz2,%object | 67 ; CHECK-LABEL: .type __$rz0,%object |
| 44 ; CHECK-NEXT: .section .bss | 68 ; CHECK-NEXT: .section .bss |
| 45 ; CHECK-NEXT: __$rz2: | 69 ; CHECK-NEXT: .p2align 5 |
| 70 ; CHECK-NEXT: __$rz0: |
| 46 ; CHECK-LABEL: .type zeroInitGlobal,%object | 71 ; CHECK-LABEL: .type zeroInitGlobal,%object |
| 47 ; CHECK-NEXT: .section .bss | 72 ; CHECK-NEXT: .section .bss |
| 73 ; CHECK-NEXT: .p2align 5 |
| 48 ; CHECK-NEXT: zeroInitGlobal: | 74 ; CHECK-NEXT: zeroInitGlobal: |
| 49 ; CHECK-LABEL: .type __$rz3,%object | 75 ; CHECK-LABEL: .type __$rz1,%object |
| 50 ; CHECK-NEXT: .section .bss | 76 ; CHECK-NEXT: .section .bss |
| 51 ; CHECK-NEXT: __$rz3: | 77 ; CHECK-NEXT: __$rz1: |
| 52 | 78 |
| 53 ; A constant-initialized global | 79 ; A constant-initialized global |
| 54 @constInitGlobal = internal constant [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUVWXYZ01234
5" | 80 @constInitGlobal = internal constant [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUVWXYZ01234
5" |
| 55 | 81 |
| 56 ; CHECK-LABEL: .type __$rz4,%object | 82 ; CHECK-LABEL: .type __$rz2,%object |
| 57 ; CHECK-NEXT: .section .rodata | 83 ; CHECK-NEXT: .section .rodata |
| 58 ; CHECK-NEXT: __$rz4: | 84 ; CHECK-NEXT: .p2align 5 |
| 85 ; CHECK-NEXT: __$rz2: |
| 59 ; CHECK-LABEL: .type constInitGlobal,%object | 86 ; CHECK-LABEL: .type constInitGlobal,%object |
| 60 ; CHECK-NEXT: .section .rodata | 87 ; CHECK-NEXT: .section .rodata |
| 88 ; CHECK-NEXT: .p2align 5 |
| 61 ; CHECK-NEXT: constInitGlobal: | 89 ; CHECK-NEXT: constInitGlobal: |
| 62 ; CHECK-LABEL: .type __$rz5,%object | 90 ; CHECK-LABEL: .type __$rz3,%object |
| 63 ; CHECK-NEXT: .section .rodata | 91 ; CHECK-NEXT: .section .rodata |
| 64 ; CHECK-NEXT: __$rz5: | 92 ; CHECK-NEXT: __$rz3: |
| 65 | 93 |
| 66 ; DUMP-NEXT: @__$rz4 = internal constant [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRR" | 94 ; DUMP-NEXT: @__$rz2 = internal constant [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRR" |
| 67 ; DUMP-NEXT: @constInitGlobal = internal constant [32 x i8] c"ABCDEFGHIJKLMNOPQR
STUVWXYZ012345" | 95 ; DUMP-NEXT: @constInitGlobal = internal constant [32 x i8] c"ABCDEFGHIJKLMNOPQR
STUVWXYZ012345" |
| 68 ; DUMP-NEXT: @__$rz5 = internal constant [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRR" | 96 ; DUMP-NEXT: @__$rz3 = internal constant [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRR" |
| 69 | 97 |
| 70 ; A regular global | 98 ; A regular global |
| 71 @regInitGlobal = internal global [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345" | 99 @regInitGlobal = internal global [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345" |
| 72 | 100 |
| 73 ; DUMP-NEXT: @__$rz6 = internal global [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRR" | 101 ; DUMP-NEXT: @__$rz4 = internal global [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRR" |
| 74 ; DUMP-NEXT: @regInitGlobal = internal global [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUV
WXYZ012345" | 102 ; DUMP-NEXT: @regInitGlobal = internal global [32 x i8] c"ABCDEFGHIJKLMNOPQRSTUV
WXYZ012345" |
| 75 ; DUMP-NEXT: @__$rz7 = internal global [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRR" | 103 ; DUMP-NEXT: @__$rz5 = internal global [32 x i8] c"RRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRR" |
| 76 | 104 |
| 77 ; CHECK-LABEL: .type __$rz6,%object | 105 ; CHECK-LABEL: .type __$rz4,%object |
| 78 ; CHECK-NEXT: .section .data | 106 ; CHECK-NEXT: .section .data |
| 79 ; CHECK-NEXT: __$rz6: | 107 ; CHECK-NEXT: .p2align 5 |
| 108 ; CHECK-NEXT: __$rz4: |
| 80 ; CHECK-LABEL: .type regInitGlobal,%object | 109 ; CHECK-LABEL: .type regInitGlobal,%object |
| 81 ; CHECK-NEXT: .section .data | 110 ; CHECK-NEXT: .section .data |
| 111 ; CHECK-NEXT: .p2align 5 |
| 82 ; CHECK-NEXT: regInitGlobal: | 112 ; CHECK-NEXT: regInitGlobal: |
| 83 ; CHECK-LABEL: .type __$rz7,%object | 113 ; CHECK-LABEL: .type __$rz5,%object |
| 84 ; CHECK-NEXT: .section .data | 114 ; CHECK-NEXT: .section .data |
| 85 ; CHECK-NEXT: __$rz7: | 115 ; CHECK-NEXT: __$rz5: |
| 86 | 116 |
| 87 define internal void @func() { | 117 define internal void @func() { |
| 88 ret void | 118 ret void |
| 89 } | 119 } |
| 90 | 120 |
| 91 ; DUMP-LABEL: define internal void @func() { | 121 ; DUMP-LABEL: define internal void @func() { |
| 92 ; CHECK-LABEL: func: | 122 ; CHECK-LABEL: func: |
| OLD | NEW |