cplusplus / nbballot

Handling of NB comments in response to ballots
14 stars 4 forks source link

GB-055 9.12.1p6 [dcl.attr.grammar] Ignoring standard attributes #430

Closed wg21bot closed 1 year ago

wg21bot commented 1 year ago

It is unclear whether implementations can ignore standard attributes. The standard states: "Any attribute-token that is not recognized by the implementation is ignored." It is unclear whether this applies to attributes listed in the standard itself.

See CWG2538 and P2552R0.

jfbastien commented 1 year ago

Paper: https://github.com/cplusplus/papers/issues/1212 (updated draft https://isocpp.org/files/papers/D2552R1.pdf)

erichkeane commented 1 year ago

From D2552R1, we support the adoption of the proposed wording for option 1.A on Syntactic ignorability: Specify that standard attributes cannot be syntactically ignored for C++23 (= adopt proposed resolution for CWG2538 as recommended by CWG).

SF F N A SA
14 14 6 1 6

Result: Consensus

From D2552R1, we support the adoption of the proposed wording for option 1.B on Syntactic ignorability: Specify that standard attributes can be syntactically ignored for C++23 (= parsed as a balanced-token-sequence and then skipped entirely; argument clause and appertainment do not need to be syntax checked; entities inside the argument clause do not need to be ODR-used).

SF F N A SA
9 6 9 11 6

Result: No Consensus

From D2552R1, we want to adopt wording for option 2.A on Semantic ignorability: Specify that standard attributes are meant to be semantically ignorable, and what this means exactly, normatively in the C++ standard, for C++23.

SF F N A SA
3 7 16 6 4

Result: No Consensus

From D2552R1, we want to adopt wording for option 2.B on Semantic ignorability: Specify this in a separate new Standing Document (SD) instead. This SD might also contain other design principles for new language features.

SF F N A SA
1 11 14 9 1

Result: No Consensus

From D2552R1, we would want to adopt wording for option 3.A on has_cpp_attribute: Specify that has_cpp_attribute should return a positive value for a standard attribute only if an an implementation has a useful implementation of its semantics (GCC behaviour).

SF F N A SA
8 15 11 7 2

Result: No Consensus

From D2552R1, we would want to adopt wording for option 3.B on has_cpp_attribute: Specify that has_cpp_attribute should also return a positive value for a standard attribute if an implementation can syntax-parse it, even if it does not implement any useful semantics (Clang and ICC behaviour).

SF F N A SA
9 7 12 11 2

Result: No Consensus

jensmaurer commented 1 year ago

CWG2538

jensmaurer commented 1 year ago

CWG 2022-11-08: Approved CWG2538.

Accepted with Modifications. Attributes specified by the standard cannot be syntactically ignored; see CWG2538 for details.