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

Reply via email to