-
Notifications
You must be signed in to change notification settings - Fork 18.3k
[libc++] Enable -Wmissing-prototypes #116261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -125,8 +125,11 @@ _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass, | |
| uint32_t discriminator, | ||
| _Unwind_VRS_DataRepresentation representation); | ||
|
|
||
| extern _Unwind_Reason_Code __gnu_unwind_frame(_Unwind_Exception *, | ||
| _Unwind_Context *); | ||
|
|
||
| #if defined(_LIBUNWIND_UNWIND_LEVEL1_EXTERNAL_LINKAGE) | ||
| #define _LIBUNWIND_EXPORT_UNWIND_LEVEL1 extern | ||
| #define _LIBUNWIND_EXPORT_UNWIND_LEVEL1 extern __inline__ | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @DanielKristofKiss I don't have any context about this code. Our understanding is that without
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've checked, and technically this isn't an ODR violation. However, AFAICT these are intended to provide the definitions to people who are naughty and declare their own versions of these functions, so I believe this change is correct. |
||
| #else | ||
| #define _LIBUNWIND_EXPORT_UNWIND_LEVEL1 static __inline__ | ||
| #endif | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason for
__cxa_thread_atexitto have become Linux and Fuchsia-only? Did it conflict with libc's one on OSes having it there?I'm unable to build a 22.1.2 ecosystem from a 22.1.2 on FreeBSD 10 (… OK it's 10 years old), due to
undefined reference to '__cxa_thread_atexit',while I could from a 21.1.6: libc++abi 21.1.6 defining
__cxa_thread_atexit(and expecting an external__cxa_thread_atexit_impl) supplements libc not having it; and, on a FreeBSD 15.0 (where libc has its__cxa_thread_atexit), that same__cxa_thread_atexitdoesn't seem to hinder.So based on my small experience I'd say that letting it defined doesn't hurt (thanks to some overloading magics, perhaps specific to my Frankenstein-like FreeBSD/libc++abi environments?)
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking a bit harder I just noticed the question has already been asked in #186054, and specifically #186054 (comment) that mentions that, contrary to what I noticed on my FreeBSD 10, defining
__cxa_thread_atexitmade the FreeBSD 13 CI fail.