// RUN: %swift -target x86_64-apple-macosx10.9 -module-name main %s -emit-ir -o - | FileCheck %s
// RUN: %swift -target i386-apple-ios7.1 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target x86_64-apple-ios7.1 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target x86_64-unknown-linux-gnu -disable-objc-interop %s -module-name main -emit-ir -o - | FileCheck %s

// REQUIRES: CODEGENERATOR=X86

sil_stage canonical

sil @foo : $@convention(thin) () -> () {
bb0:
  // In a simple module-appending scheme where we emitted SIL
  // functions in order, this function reference would cause
  // @baz to be created immediately following @foo because we
  // won't yet have created the declaration for @bar.
  %0 = function_ref @baz : $@convention(thin) () -> ()
  %1 = apply %0() : $@convention(thin) () -> ()
  return %1 : $()
}

sil @bar : $@convention(thin) () -> () {
bb0:
  %0 = tuple ()
  return %0 : $()
}

sil @baz : $@convention(thin) () -> () {
bb0:
  %0 = tuple ()
  return %0 : $()
}

// Make sure that these functions are emitted in the order they 
// CHECK: define{{( protected)?}} void @foo
// CHECK: define{{( protected)?}} void @bar
// CHECK: define{{( protected)?}} void @baz
