Fixes #14921: Detect enums before simplifying platform types#8736
Fixes #14921: Detect enums before simplifying platform types#8736autoantwort wants to merge 1 commit into
Conversation
|
This issue has come up multiple times before, and is not restricted to enums or the Windows library, see e.g. https://trac.cppcheck.net/ticket/12589 Contributing factors:
I don't think the proposed change is the right way to address this. Maybe |
There was a problem hiding this comment.
is it OK to redefine HANDLE in the global scope? If I compile this code:
typedef void* HANDLE;
enum {HANDLE, X};
I get such gcc errors:
1.c:3:7: error: ‘HANDLE’ redeclared as different kind of symbol
I assume windows.h defines HANDLE using a typedef?
There was a problem hiding this comment.
I feel there is some missing scope in the example code. HANDLE in the global scope should be simplified as a void * if --library=windows has been used .. and HANDLE in your inner scope should be handled as the enum constant. We need to distinguish which type to use in different scopes..
No description provided.