Skip to content

Commit f17a38e

Browse files
committed
Address review comments
1 parent 9e6c306 commit f17a38e

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

clang/lib/CIR/CodeGen/CIRGenModule.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,9 @@ void CIRGenModule::emitGlobalFunctionDefinition(clang::GlobalDecl gd,
261261
const CIRGenFunctionInfo &fi = getTypes().arrangeCIRFunctionInfo(
262262
noProto->getReturnType(), {}, RequiredArgs::All);
263263
funcType = getTypes().getFunctionType(fi);
264-
} else
264+
} else {
265265
funcType = cast<cir::FuncType>(convertType(funcDecl->getType()));
266+
}
266267

267268
cir::FuncOp funcOp = dyn_cast_if_present<cir::FuncOp>(op);
268269
if (!funcOp || funcOp.getFunctionType() != funcType) {

clang/test/CIR/CodeGen/basic.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,24 @@ void f9() {}
246246
// OGCG-NEXT: entry:
247247
// OGCG-NEXT: ret void
248248

249+
void f10(int arg0, ...) {}
250+
251+
// CIR: cir.func @f10(%[[ARG0:.*]]: !s32i loc({{.*}}), ...)
252+
// CIR-NEXT: %[[ARG0_PTR:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["arg0", init] {alignment = 4 : i64}
253+
// CIR-NEXT: cir.store %[[ARG0]], %[[ARG0_PTR]] : !s32i, !cir.ptr<!s32i>
254+
// CIR-NEXT: cir.return
255+
256+
// LLVM: define void @f10(i32 %[[ARG0:.*]], ...)
257+
// LLVM-NEXT: %[[ARG0_PTR:.*]] = alloca i32, i64 1, align 4
258+
// LLVM-NEXT: store i32 %[[ARG0]], ptr %[[ARG0_PTR]], align 4
259+
// LLVM-NEXT: ret void
260+
261+
// OGCG: define{{.*}} void @f10(i32 noundef %[[ARG0:.*]], ...)
262+
// OGCG-NEXT: entry:
263+
// OGCG-NEXT: %[[ARG0_PTR:.*]] = alloca i32, align 4
264+
// OGCG-NEXT: store i32 %[[ARG0]], ptr %[[ARG0_PTR]], align 4
265+
// OGCG-NEXT: ret void
266+
249267
typedef unsigned long size_type;
250268
typedef unsigned long _Tp;
251269

0 commit comments

Comments
 (0)