blob: a683915eb5e7b118bcfafe301787b60eb727a614 [file] [edit]
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=gnu89 -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --input-file=%t.cir %s
// Regression test for https://github.com/llvm/llvm-project/issues/182175
// A function called with no prior declaration must get a variadic CIR function
// type so that multiple call sites with different argument counts do not
// trigger a verifier error.
char temp[] = "some str";
int foo(const char *);
int bar(void) {
int t = foo(temp);
printf("Hello %d!\n", t);
printf("Works!\n");
return 0;
}
// CHECK: cir.func private @printf(!cir.ptr<!s8i> {{.*}}, ...) -> !s32i
// CHECK: cir.call @printf({{.*}}, {{.*}}) : (!cir.ptr<!s8i> {{.*}}, !s32i {{.*}}) -> !s32i
// CHECK: cir.call @printf({{.*}}) : (!cir.ptr<!s8i> {{.*}}) -> !s32i