Issue |
148938
|
Summary |
#pragma init_seg(section-specifier, func-name) not supported
|
Labels |
new issue
|
Assignees |
|
Reporter |
AdamGlass
|
This MSVC pragma is only partially implemented. As detailed here, there is functionality to specify a function to call in place of atexit.
https://learn.microsoft.com/en-us/cpp/preprocessor/init-seg?view=msvc-170
"func-name
Specifies a function to be called in place of atexit when the program exits. This helper function also calls [atexit](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/atexit?view=msvc-170) with a pointer to the destructor for the global object. If you specify a function identifier in the pragma of the form,
C++
Copy
int __cdecl myexit (void (__cdecl *pf)(void))
then your function will be called instead of the C run-time library's atexit. It allows you to build a list of the destructors to call when you're ready to destroy the objects."
Relevant code in ParsePragma.cpp:Parser::HandlePragmaMSInitSeg:
// FIXME: Add support for the '[, func-name]' part of the pragma.
Maybe a good early OSS contribution given the limited use and lack of potential for regression
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs