[PATCH] Attributes with enum arguments

Aaron Ballman aaron at aaronballman.com
Wed Sep 11 11:57:32 PDT 2013

On Wed, Sep 11, 2013 at 1:32 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> SemaDeclAttr:2450 is underindented

That appears to be existing code which was hyperindented, but I've
changed the surrounding code.

> ClangAttrEmitter:988 is underindented

Good catch!

> The writeConversion function you generate has undefined behavior if the
> string is not a member of the enumeration (because -1 is not a representable
> value in the enumeration type). How about using a
> StringSwitch<Optional<EnumType> > ? (You could even return
> Optional<EnumType> directly from ConvertStrToEnumType.)

Also a good catch!  I tried returning an Optional<EnumType>, but it
made the surrounding code a bit more gnarly to work with.  So I left
the signature the same, but changed the implementation.

Thanks for the review!

> On Tue, Sep 10, 2013 at 7:44 PM, Aaron Ballman <aaron at aaronballman.com>
> wrote:
>> Ping
>> On Fri, Sep 6, 2013 at 2:31 PM, Aaron Ballman <aaron at aaronballman.com>
>> wrote:
>> > This patch causes tablegen to generate a StringSwitch for attributes
>> > that contain enum args, mapping from the enumerant string to the
>> > proper enumeration value.  It resolves inconsistencies between
>> > diagnostics, and brings us one step closer to more generalized error
>> > reporting for attributes.
>> >
>> > ~Aaron
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AttrEnumArgs.patch
Type: application/octet-stream
Size: 13047 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130911/246fd138/attachment.obj>

More information about the cfe-commits mailing list