daltenty added inline comments.
================ Comment at: clang/lib/Driver/ToolChains/AIX.cpp:137 - if (D.CCCIsCXX()) + if (D.CCCIsCXX() || D.CCCIsCC()) CmdArgs.push_back(Args.MakeArgString( ---------------- Xiangling_L wrote: > daltenty wrote: > > I think that rather that adding CC, we should just pull the if and > > unconditionally link crti.o. This is consistent with what is done on other > > platforms and since the `llvm.global_c/dtors` are generally allowable in > > the IR, we might see them in more than just the two driver scenarios > > suggested here. > > we should just pull the if and unconditionally link crti.o. ...we might see > > them in more than just the two driver scenarios suggested here. > > I was thinking to use the code to document what exactly happen is under c++ > and c mode we link crti.o. But I think it makes sense to just remove `if` as > you said. But we can indicate it's something for C and CXX mode only? Cuz as > far as I know, there are c++, c, preprocessor, cl and flang driver mode. I > think it only make sense for us to see static init functions generated in IR > in c++ and c mode on AIX? > > These mode flags don't exactly correspond to input languages though, so it's not quite right to say this is "something for C and CXX mode only" (i.e. CXX isn't defined as "C++" mode, it's "behave similar to g++"). For example, it seems like if someone tired to link a mixed C and Fortran program using --driver-mode=flang, the static init in the C portion would stop working because we'd omit crit.o. I don't know if there is an advantage to being more specific in this case, and it definitely seems like it could run us into problems. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91361/new/ https://reviews.llvm.org/D91361 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits