[PATCH] D81972: [NFC] Cleanup of EmitCXXGlobalInitFunc() and EmitCXXGlobalDtorFunc()

Jason Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 17 15:07:03 PDT 2020


jasonliu accepted this revision.
jasonliu added a comment.
This revision is now accepted and ready to land.

LGTM.



================
Comment at: clang/lib/CodeGen/CGDeclCXX.cpp:596
   }
 
+  // Include the filename in the symbol name. Including "sub_" matches gcc
----------------
Xiangling_L wrote:
> jasonliu wrote:
> > jasonliu wrote:
> > > jasonliu wrote:
> > > > I think this patch is missing what @hubert.reinterpretcast mentioned in https://reviews.llvm.org/D74166?id=269900#inline-751064
> > > > which is an early return like this:
> > > > 
> > > > ```
> > > >  if (CXXGlobalInits.empty())
> > > >     return;
> > > > ```
> > > Please double check the above early return is desired though. It seems even when CXXGlobalInits is empty, `GenerateCXXGlobalInitFunc` is trying to do a lot of things with `Fn` passed in. Later, we also called `AddGlobalCtor(Fn)`. So a lot of behavior changes here, we want to make sure it's really 'NFC'.
> > FYI,
> > ```
> > class test {
> >   public:
> >         test();
> > };
> > test t1 __attribute__((init_priority (300)));
> > ```
> > Compile with `clang  -target x86_64-apple-darwin10   -emit-llvm `
> > With this change, I guess we will not generate @_GLOBAL__sub_I_d.cpp(), and also that function will not get added into @llvm.global_ctors.
> > I'm not sure if we really need @_GLOBAL__sub_I_d.cpp() on that platform in this case. But this change does not really qualify as NFC. 
> > If we need to do this change, a test case is necessary, and we better ask people who familiar with the platform to confirm it's a desired change. 
> Thanks, I am gonna remove this part and keep it as a NFC patch.
Sure. Please update D74166 accordingly.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81972/new/

https://reviews.llvm.org/D81972





More information about the cfe-commits mailing list