Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@JMazurkiewicz
Copy link
Contributor

@JMazurkiewicz JMazurkiewicz commented Feb 3, 2023

Currently <system_error> header uses non-reserved identifiers clang and require_constant_initialization which is incorrect (see #2645):

PS D:\stl-playground> type .\clang_rci.cpp
// Non-reserved identifiers
#define clang
#define require_constant_initialization

#include <system_error> // Whoops!
PS D:\stl-playground> clang .\clang_rci.cpp
In file included from .\clang_rci.cpp:5:
D:\stl\out\build\x64\out\inc\system_error:646:7: error: expected ']'
    [[clang::require_constant_initialization]] static _Ty _Static;
      ^
1 error generated.

This PR simply uglifies this attribute.

@JMazurkiewicz JMazurkiewicz requested a review from a team as a code owner February 3, 2023 00:37
@CaseyCarter CaseyCarter added the bug Something isn't working label Feb 3, 2023
@StephanTLavavej
Copy link
Member

Neat, I wasn't aware that this was officially documented:

The attribute scope tokens clang and _Clang are interchangeable, as are the attribute scope tokens gnu and __gnu__. Attribute tokens in either of these namespaces can be specified with a preceding and following __ (double underscore) to avoid interference from a macro with the same name. For instance, gnu::__const__ can be used instead of gnu::const.

@StephanTLavavej StephanTLavavej self-assigned this Feb 10, 2023
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej StephanTLavavej merged commit 7dde18b into microsoft:main Feb 10, 2023
@StephanTLavavej
Copy link
Member

Thanks for noticing and fixing this minor conformance issue! 🐛 🛠️ ✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants