1ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner// RUN: %clang_cc1 -mrtd -triple i386-unknown-unknown -std=c89 -emit-llvm -o - %s | FileCheck %s 2cfe9af250f466e7e38becea4428990448ae07737Roman Divacky 3cfe9af250f466e7e38becea4428990448ae07737Roman Divackyvoid baz(int arg); 4cfe9af250f466e7e38becea4428990448ae07737Roman Divacky 5c3af6799d4c8ec4b338236e4361c0795e9af890aBill Wendling// CHECK: define x86_stdcallcc void @foo(i32 %arg) [[NUW:#[0-9]+]] 6cfe9af250f466e7e38becea4428990448ae07737Roman Divackyvoid foo(int arg) { 701f151e0ffba72bcad770bea5f563a9b68ca050eJohn McCall// CHECK: call x86_stdcallcc i32 bitcast (i32 (...)* @bar to i32 (i32)*)( 8cfe9af250f466e7e38becea4428990448ae07737Roman Divacky bar(arg); 9438d7f05d34abfdf6a8a8954a957b97275162070Douglas Gregor// CHECK: call x86_stdcallcc void @baz(i32 10cfe9af250f466e7e38becea4428990448ae07737Roman Divacky baz(arg); 11cfe9af250f466e7e38becea4428990448ae07737Roman Divacky} 12cfe9af250f466e7e38becea4428990448ae07737Roman Divacky 13cfe9af250f466e7e38becea4428990448ae07737Roman Divacky// CHECK: declare x86_stdcallcc i32 @bar(...) 14cfe9af250f466e7e38becea4428990448ae07737Roman Divacky 15cfe9af250f466e7e38becea4428990448ae07737Roman Divacky// CHECK: declare x86_stdcallcc void @baz(i32) 16f7a9da053f5bd6c18450c1796d953b42c3b7ad3aBill Wendling 17ef072033876e295ec5d3402f8730a3ae358ad815Reid Klecknervoid qux(int arg, ...) { } 18ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner// CHECK: define void @qux(i32 %arg, ...) 19ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner 20ef072033876e295ec5d3402f8730a3ae358ad815Reid Klecknervoid quux(int a1, int a2, int a3) { 21ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner qux(a1, a2, a3); 22ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner} 23ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner// CHECK-LABEL: define x86_stdcallcc void @quux 24ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner// CHECK: call void (i32, ...)* @qux 25ef072033876e295ec5d3402f8730a3ae358ad815Reid Kleckner 26c3af6799d4c8ec4b338236e4361c0795e9af890aBill Wendling// CHECK: attributes [[NUW]] = { nounwind{{.*}} } 27