https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109877
--- Comment #13 from Drea Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #12)
> Actually, this is not really Darwin-specific...
>
> In particular, from my reading of [dcl.attr.grammar] (C++)
> and 6.7.12 Attributes (c)
>
> We should consume this:
>
> ```
> void foo ()
> {
> int x [[clang::fudge(something, version=10.10.1)]];
> }
>
> ```
>
> with a warning about an ignored attribute, but we error-out with
>From `[dcl.attr.grammar]`:
```
balanced-token:
( balanced-token-seq/opt )
[ balanced-token-seq/opt ]
{ balanced-token-seq/opt }
[: balanced-token-seq/opt :]
any token other than (, ), [, ], {, }, [:, or :]
```
```
token:
...
literal
```
```
literal:
floating-point-literal
```
floating-point-literal:
decimal-floating-point-literal
```
```
decimal-floating-point-literal:
fractional-constant exponent-part/opt floating-point-suffix/opt
digit-sequence exponent-part floating-point-suffix/opt
```
The problem is `10.10.1` is an invalid token as far as I understand.
So no I think the problem is this is not a valid token sequence originally.
clang accepting it is wrong too.