hubert.reinterpretcast added inline comments.

================
Comment at: clang/test/CodeGen/static-init.cpp:31
+// CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] 
[{ i32, void ()*, i8* } { i32 65535, void ()* 
@__sinit80000000_clang_510e898aa8d263cac999dd03eeed5b51, i8* null }]
+// CHECK: @llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] 
[{ i32, void ()*, i8* } { i32 65535, void ()* 
@__sterm80000000_clang_510e898aa8d263cac999dd03eeed5b51, i8* null }]
+
----------------
hubert.reinterpretcast wrote:
> Okay, the restricted scope of this patch seems to landed in a place where how 
> the `llvm.global_dtors` array will be handled is not indicated...
> 
> The backend should implement the semantics of the IR construct. When handling 
> said array in the IR, it seems the method to handle the requisite semantics 
> would be to generate an alias (with the appropriate linkage for the linker to 
> pick it up) that is named using the `__sinit`/`__sterm` convention. Which is 
> to say that at least some part of the naming should eventually move into the 
> LLVM side and out of Clang.
> 
> Please update the description of this patch to indicate that:
> 
>   - The `llvm.global_ctors` and `llvm.global_dtors` functionality has not yet 
> been implemented on AIX.
>   - This patch temporarily side-steps the need to implement that 
> functionality.
>   - The apparent uses of that functionality in this patch (with respect to 
> the name of the functions involved) are not representative of how the 
> functionality will be used once implemented.
> 
I think the `llvm.global_ctors` usage is also more extensive here (and not 
symmetric on the finalization side):
```
struct C {
  C(int) {}
  ~C() {}
};

C c0 = 42;
template <typename T> C c = 42;
inline C c1 = 42;

int main(void) {
  (void) &c<int>;
}
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74166



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to