jasonliu added inline comments.
================ Comment at: clang/lib/CodeGen/TargetInfo.cpp:4368 + + return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*Indirect*/ false, TypeInfo, + SlotSize, /*AllowHigher*/ true); ---------------- ZarkoCA wrote: > Is there a reason why Indirect is set to `false` instead of querying for it > using `classifyArgumentType(Ty).isIndirect()`? For how we handle Vaarg in backend, we just expect everything on register(no ByVal) even when it's a structure. So the indirect should always be false unless there is change in backend implementation. ================ Comment at: clang/lib/CodeGen/TargetInfo.cpp:4641 return false; case CodeGenOptions::SRCK_InRegs: // -msvr4-struct-return return true; ---------------- ZarkoCA wrote: > Has this option been verified to work correctly on AIX? In > https://reviews.llvm.org/D76360 we added a defensive error because we weren't > sure whether padding was handled correctly as described in the code. Thanks. I think we should disable this option in this patch. ================ Comment at: clang/test/CodeGen/ppc32-and-aix-struct-return.c:8 +// RUN: -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-AIX +// RUN: %clang_cc1 -triple powerpc-unknown-linux \ +// RUN: -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-AIX ---------------- Xiangling_L wrote: > Do you mean to check AIX or SVR4? This file is actually from llvm-project/clang/test/CodeGen/ppc32-struct-return.c What I did is only adding the check for AIX triple. And apparently, the default behavior of powerpc-unknown-linux triple is CHECK-AIX. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79035/new/ https://reviews.llvm.org/D79035 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits