Sirraide wrote:

> I think your suggestion is sensible, though I'm equally as OK with just 
> making the standard attribute ONLY spellable as `[[assume]]` (and leaving the 
> other attribute alone).

That would also be an option yeah. Only somewhat related, this diagnostic 
probably needs to be updated:
```c++
test.cc:2:4: error: 'assume' attribute cannot be applied to a statement
    2 |         [[clang::assume(3)]];
      |           ^                 ~
```
Because ‘'assume' attribute cannot be applied to a statement’ is just outright 
confusing now that `[[assume]]` exists and *has* to be applied to a statement. 
So if we keep `[[clang::assume]]` as-is, we should probably add something along 
the lines of ‘did you mean `[[assume]]` instead of `[[clang::assume]]`’.

Also, I just noticed that `[[clang::assume]]` apparently only appertains to 
function declarations, where `[[assume]]` isn’t allowed anyway, so I think 
distinguishing between the two is even less of a problem than I at least 
thought. I suppose the only question now is whether `[[clang::assume]]` should 
be treated like `[[assume]]` if it’s not applied to a function declaration?

https://github.com/llvm/llvm-project/pull/81014
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to