This patch extends the Clang attribute spelling to include support for double square-bracket attributes. Currently, all attributes with the Clang spelling will be C++ only. However, at some point I suspect the default will either switch to be a spelling for C and C++ or will require an explicit decision to be made for each attribute.
This patch adds the annotate attribute as a C attribute as an initial experiment. Additional attributes will be added in follow-up patches.