; RUN: llc -filetype=obj -mtriple=x86_64-pc-linux-gnu %s -o %t ; RUN: llvm-readobj --relocations %t | FileCheck %s ; Check that we don't have any relocations in the ranges section - ; to show that we're producing this as a relative offset to the ; low_pc for the compile unit. ; CHECK-NOT: .rela.debug_ranges @llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 0, void ()* @__msan_init }] @str = private unnamed_addr constant [4 x i8] c"zzz\00" @__msan_retval_tls = external thread_local(initialexec) global [8 x i64] @__msan_retval_origin_tls = external thread_local(initialexec) global i32 @__msan_param_tls = external thread_local(initialexec) global [1000 x i64] @__msan_param_origin_tls = external thread_local(initialexec) global [1000 x i32] @__msan_va_arg_tls = external thread_local(initialexec) global [1000 x i64] @__msan_va_arg_overflow_size_tls = external thread_local(initialexec) global i64 @__msan_origin_tls = external thread_local(initialexec) global i32 @__executable_start = external hidden global i32 @_end = external hidden global i32 ; Function Attrs: sanitize_memory uwtable define void @_Z1fv() #0 { entry: %p = alloca i32*, align 8 %0 = ptrtoint i32** %p to i64, !dbg !19 %1 = and i64 %0, -70368744177672, !dbg !19 %2 = inttoptr i64 %1 to i64*, !dbg !19 store i64 -1, i64* %2, align 8, !dbg !19 store i64 0, i64* getelementptr inbounds ([1000 x i64]* @__msan_param_tls, i64 0, i64 0), align 8, !dbg !19 store i64 0, i64* getelementptr inbounds ([8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !19 %call = call i8* @_Znwm(i64 4) #4, !dbg !19 %_msret = load i64* getelementptr inbounds ([8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !19 %3 = bitcast i8* %call to i32*, !dbg !19 tail call void @llvm.dbg.value(metadata !{i32* %3}, i64 0, metadata !9, metadata !{metadata !"0x102"}), !dbg !19 %4 = inttoptr i64 %1 to i64*, !dbg !19 store i64 %_msret, i64* %4, align 8, !dbg !19 store volatile i32* %3, i32** %p, align 8, !dbg !19 tail call void @llvm.dbg.value(metadata !{i32** %p}, i64 0, metadata !9, metadata !{metadata !"0x102"}), !dbg !19 %p.0.p.0. = load volatile i32** %p, align 8, !dbg !20 %_msld = load i64* %4, align 8, !dbg !20 %_mscmp = icmp eq i64 %_msld, 0, !dbg !20 br i1 %_mscmp, label %6, label %5, !dbg !20, !prof !22 ;