[cfe-dev] [RFC] Pragma that applies a specified attribute to declarations

Alex L via cfe-dev cfe-dev at lists.llvm.org
Mon Feb 13 16:24:21 PST 2017


Hi,

I would like to propose a new Clang pragma that would apply a specified
attribute to some specific declarations in a source file. Initially the
pragma would only work with annotation-like attributes that explicitly
opt-in into allowing this pragma. This will ensure that this pragma can
avoid conflicts with other pragmas that apply attributes like "#pragma
clang optimize off", etc. The set of declarations that receive the
attribute would be attribute-specific.

I would like to propose the following syntax:

    #pragma clang attribute push(annotate("important")) // or maybe
push(__attribute__(annotate("important")))?

    void foo(); // This function will now have the annotate("important")
attribute.

    #pragma clang attribute pop

We would like to use this pragma to apply the new
'external_source_attribute' (https://reviews.llvm.org/D29819) to all of the
declarations in an Objective-C header file that was auto-generated by the
Swift compiler without adding additional attribute/macro to each
declaration.

Do you have any thoughts / suggestions about this proposal?

Cheers,
Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170213/369b4441/attachment.html>


More information about the cfe-dev mailing list