[PATCH] D81972: [NFC] Cleanup of EmitCXXGlobalInitFunc() and EmitCXXGlobalDtorFunc()
Jason Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 17 13:29:59 PDT 2020
jasonliu added inline comments.
================
Comment at: clang/lib/CodeGen/CGDeclCXX.cpp:596
}
+ // Include the filename in the symbol name. Including "sub_" matches gcc
----------------
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.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81972/new/
https://reviews.llvm.org/D81972
More information about the cfe-commits
mailing list