; RUN: opt < %s -asan -asan-module -enable-new-pm=0 -S | FileCheck %s
; RUN: opt < %s -passes='asan-pipeline' -S | FileCheck %s
; RUN: opt < %s -asan -asan-module -enable-new-pm=0 -asan-mapping-scale=5 -S | FileCheck %s
; RUN: opt < %s -passes='asan-pipeline' -asan-mapping-scale=5 -S | FileCheck %s
target 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"
target triple = "x86_64-unknown-linux-gnu"
@xxx = internal global i32 0, align 4  ; With dynamic initializer.
@XXX = global i32 0, align 4           ; With dynamic initializer.
@yyy = internal global i32 0, align 4  ; W/o dynamic initializer.
@YYY = global i32 0, align 4           ; W/o dynamic initializer.
; Clang will emit the following metadata identifying @xxx as dynamically
; initialized.
!0 = !{i32* @xxx, null, null, i1 true, i1 false}
!1 = !{i32* @XXX, null, null, i1 true, i1 false}
!2 = !{i32* @yyy, null, null, i1 false, i1 false}
!3 = !{i32* @YYY, null, null, i1 false, i1 false}
!llvm.asan.globals = !{!0, !1, !2, !3}

define i32 @initializer() uwtable {
entry:
  ret i32 42
}

define internal void @__cxx_global_var_init() section ".text.startup" {
entry:
  %call = call i32 @initializer()
  store i32 %call, i32* @xxx, align 4
  ret void
}

@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @__late_ctor, i8* null }, { i32, void ()*, i8* } { i32 0, void ()* @__early_ctor, i8* null }]

define internal void @__late_ctor() sanitize_address section ".text.startup" {
entry:
  call void @__cxx_global_var_init()
  ret void
}

; Clang indicated that @xxx was dynamically initailized.
; __asan_{before,after}_dynamic_init should be called from __late_ctor

; CHECK-LABEL: define internal void @__late_ctor
; CHECK-NOT: ret
; CHECK: call void @__asan_before_dynamic_init
; CHECK: call void @__cxx_global_var_init
; CHECK: call void @__asan_after_dynamic_init
; CHECK: ret

; CTOR with priority 0 should not be instrumented.
define internal void @__early_ctor() sanitize_address section ".text.startup" {
entry:
  call void @__cxx_global_var_init()
  ret void
}
; CHECK-LABEL: define internal void @__early_ctor
; CHECK-NOT: __asan
; CHECK: ret

; Check that xxx is instrumented.
define void @touch_xxx() sanitize_address {
  store i32 0, i32 *@xxx, align 4
  ret void
; CHECK-LABEL: touch_xxx
; CHECK: call void @__asan_report_store4
; CHECK: ret void
}

; Check that XXX is instrumented.
define void @touch_XXX() sanitize_address {
  store i32 0, i32 *@XXX, align 4
  ret void
; CHECK: define void @touch_XXX
; CHECK: call void @__asan_report_store4
; CHECK: ret void
}


; Check that yyy is NOT instrumented (as it does not have dynamic initializer).
define void @touch_yyy() sanitize_address {
  store i32 0, i32 *@yyy, align 4
  ret void
; CHECK: define void @touch_yyy
; CHECK-NOT: call void @__asan_report_store4
; CHECK: ret void
}

; Check that YYY is NOT instrumented (as it does not have dynamic initializer).
define void @touch_YYY() sanitize_address {
  store i32 0, i32 *@YYY, align 4
  ret void
; CHECK: define void @touch_YYY
; CHECK-NOT: call void @__asan_report_store4
; CHECK: ret void
}
