[PATCH] Create calling convention AttributedType sugar nodes

Reid Kleckner rnk at google.com
Fri Jul 19 12:53:11 PDT 2013


Thanks for the review!  Committed in r186714.


On Fri, Jul 19, 2013 at 1:57 PM, John McCall <rjmccall at apple.com> wrote:

> On Jul 19, 2013, at 10:17 AM, Reid Kleckner <rnk at google.com> wrote:
>
> On Fri, Jul 19, 2013 at 1:04 PM, John McCall <rjmccall at apple.com> wrote:
>
>> On Jul 12, 2013, at 5:39 AM, Reid Kleckner <rnk at google.com> wrote:
>> > Canonical types are unchanged.  The type printer had to be changed to
>> > avoid printing any non-default implicit calling convention as well as
>> > the calling convention attribute.
>>
>> +bool AttributedType::isCallingConv() const {
>> +  switch (getAttrKind()) {
>> +  default:  return false;
>> +  case attr_cdecl:
>> +  case attr_fastcall:
>> +  case attr_stdcall:
>> +  case attr_thiscall:
>> +  case attr_pascal:
>> +  case attr_pnaclcall:
>> +  case attr_inteloclbicc:
>>
>> This seems to be missing the pcs attributes.  If that's intentional,
>> there should be a comment.
>>
>
> Oops.  I'll make this a fully covered switch.
>
>
>> -  if (handleFunctionTypeAttr(state, attr, declSpecType)) {
>> -    spliceAttrOutOfList(attr, attrList);
>> -    return true;
>> -  }
>> -
>> -  return false;
>> +  return handleFunctionTypeAttr(state, attr, declSpecType);
>>
>> This is an unexplained change.  Doesn't this cause the attribute
>> to be potentially applied twice?
>>
>
> I had to apply this change in order to get one of the TypeLocBuilders to
> succeed without asserting in fillAttributedType().  What might happen if
> the parsed attribute stays on the declspec?
>
>
> Oh, I see.  You're right, there's no reason to splice this out.
>
> John.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130719/a98c5dcb/attachment.html>


More information about the cfe-commits mailing list