; All of the functions in this module must end up ; in the same partition without change of scope. ; RUN: llvm-split -j=2 -preserve-locals -o %t %s ; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK1 %s ; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK0 %s ; CHECK0: declare dso_local i32 @funInternal ; CHECK0: declare i32 @funExternal ; CHECK0: declare dso_local i32 @funInternal2 ; CHECK0: declare i32 @funExternal2 ; All functions are in the same file. ; Local functions are still local. ; CHECK1: define internal i32 @funInternal ; CHECK1: define i32 @funExternal ; CHECK1: define internal i32 @funInternal2 ; CHECK1: define i32 @funExternal2 @funInternalAlias = internal alias i32 (), i32 ()* @funInternal define internal i32 @funInternal() { entry: ret i32 0 } ; Direct call to local alias define i32 @funExternal() { entry: %x = call i32 @funInternalAlias() ret i32 %x } ; Call to local function that calls local alias define internal i32 @funInternal2() { entry: %x = call i32 @funInternalAlias() ret i32 %x } define i32 @funExternal2() { entry: %x = call i32 @funInternal2() ret i32 %x }