llvm/llvm/test/LTO/X86/hidden-escaped-symbols.ll

; Check interaction between LTO and LLVM mangling escape char, see #57864.

; RUN: split-file %s %t
; RUN: opt %t/hide-me.ll -o %t/hide-me.bc
; RUN: opt %t/ref.ll -o %t/ref.bc
; RUN: llvm-lto2 run \
; RUN:               -r %t/hide-me.bc,_hide_me,p \
; RUN:               -r %t/ref.bc,_main,plx  \
; RUN:               -r %t/ref.bc,_hide_me,l \
; RUN:               --select-save-temps=precodegen \
; RUN:               -o %t/out \
; RUN:               %t/hide-me.bc  %t/ref.bc
; RUN: llvm-dis %t/out.0.5.precodegen.bc -o - | FileCheck %s


;--- hide-me.ll
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.7.0"

@hide_me = hidden local_unnamed_addr global i8 8, align 1

;--- ref.ll
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.7.0"

@"\01_hide_me" = external local_unnamed_addr global i8

define i8 @main() {
  %1 = load i8, ptr @"\01_hide_me", align 1
  ret i8 %1
}


; CHECK: @hide_me = hidden local_unnamed_addr global i8 8, align 1
; CHECK: @"\01_hide_me" = external dso_local local_unnamed_addr global i8

; CHECK: define dso_local i8 @main() local_unnamed_addr #0 {
; CHECK:   %1 = load i8, ptr @"\01_hide_me", align 1
; CHECK:   ret i8 %1
; CHECK: }