brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 00614b6 Raw
42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes --check-globals --version 22; Test basic address sanitizer instrumentation.3;4; RUN: opt < %s -passes=hwasan,hwasan -S | FileCheck %s5 6target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"7target triple = "x86_64-unknown-linux-gnu"8 9;.10; CHECK: @llvm.used = appending global [1 x ptr] [ptr @hwasan.module_ctor], section "llvm.metadata"11; CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @hwasan.module_ctor, ptr @hwasan.module_ctor }]12; CHECK: @__start_hwasan_globals = external hidden constant [0 x i8]13; CHECK: @__stop_hwasan_globals = external hidden constant [0 x i8]14; CHECK: @hwasan.note = private constant { i32, i32, i32, [8 x i8], i32, i32 } { i32 8, i32 8, i32 3, [8 x i8] c"LLVM\00\00\00\00", i32 trunc (i64 sub (i64 ptrtoint (ptr @__start_hwasan_globals to i64), i64 ptrtoint (ptr @hwasan.note to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @__stop_hwasan_globals to i64), i64 ptrtoint (ptr @hwasan.note to i64)) to i32) }, section ".note.hwasan.globals", comdat($hwasan.module_ctor), align 415; CHECK: @hwasan.dummy.global = private constant [0 x i8] zeroinitializer, section "hwasan_globals", comdat($hwasan.module_ctor), !associated [[META0:![0-9]+]]16; CHECK: @__hwasan_tls = external thread_local(initialexec) global i6417; CHECK: @llvm.compiler.used = appending global [3 x ptr] [ptr @hwasan.note, ptr @hwasan.dummy.global, ptr @__hwasan_tls], section "llvm.metadata"18; CHECK: @__hwasan_shadow = external global [0 x i8]19;.20define i8 @test_load8(ptr %a) sanitize_hwaddress {21; CHECK: Function Attrs: sanitize_hwaddress22; CHECK-LABEL: define i8 @test_load823; CHECK-SAME: (ptr [[A:%.*]]) #[[ATTR0:[0-9]+]] {24; CHECK-NEXT:  entry:25; CHECK-NEXT:    [[DOTHWASAN_SHADOW:%.*]] = call ptr asm "", "=r,0"(ptr null)26; CHECK-NEXT:    [[TMP0:%.*]] = ptrtoint ptr [[A]] to i6427; CHECK-NEXT:    call void @__hwasan_load1(i64 [[TMP0]])28; CHECK-NEXT:    [[B:%.*]] = load i8, ptr [[A]], align 429; CHECK-NEXT:    ret i8 [[B]]30;31entry:32  %b = load i8, ptr %a, align 433  ret i8 %b34}35;.36; CHECK: attributes #[[ATTR0]] = { sanitize_hwaddress }37; CHECK: attributes #[[ATTR1:[0-9]+]] = { nounwind }38;.39; CHECK: [[META0]] = !{ptr @hwasan.note}40; CHECK: [[META1:![0-9]+]] = !{i32 4, !"nosanitize_hwaddress", i32 1}41;.42