When Sema looks up an attribute name, it strips off leading and trailing
"" if the attribute is GNU-style. That is, attribute((foo)) and
attribute((foo__)) are equivalent.
This is only true for GNU-style attributes. In particular,
declspec(foo) is not equivalent to declspec(foo), and Sema
respects this difference.
This patch fixes TableGen to match Sema's behavior. The spelling
'GNU<"foo">' should be normalized to 'GNU<"foo">', but
'Declspec<"foo">' should not be changed.
This is necessary to make CUDA compilation work on Windows, because e.g.
the device attribute is spelled declspec(device__).
Attr.td does not contain any Declspec spellings that start or end with
"__", so this change should not affect any other attributes.