On Nov 1, 2012, at 1:31 PM, Quentin Colombet <[email protected]> wrote:

> Hi Doug,
> 
> On Nov 1, 2012, at 11:46 AM, Douglas Gregor <[email protected]> wrote:
> 
>> 
>> On Oct 31, 2012, at 11:55 AM, Quentin Colombet <[email protected]> wrote:
>> 
>>> 
>>> On Oct 30, 2012, at 1:40 PM, Dmitri Gribenko <[email protected]> wrote:
>>> 
>>>> On Tue, Oct 30, 2012 at 10:29 PM, Quentin Colombet <[email protected]> 
>>>> wrote:
>>>>> 
>>>>> On Oct 30, 2012, at 12:36 PM, Dmitri Gribenko <[email protected]> wrote:
>>>>> 
>>>>>> Hi Quentin,
>>>>>> 
>>>>>> On Tue, Oct 30, 2012 at 9:13 PM, Quentin Colombet <[email protected]> 
>>>>>> wrote:
>>>>>>> Following commits r167020 and r167021, which define MinSize attribute 
>>>>>>> for functions and set it when Oz optimization level is used, I propose 
>>>>>>> this patch to be able to use this attribute (minsize) directly in the 
>>>>>>> front end.
>>>>>> 
>>>>>> +  if (!isa<FunctionDecl>(D)) {
>>>>>> +    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
>>>>>> +      << Attr.getName() << ExpectedFunction;
>>>>>> +    return;
>>>>>> +  }
>>>>>> 
>>>>>> Why not reject this with an error?  This is a new attribute, there is
>>>>>> no legacy code misusing it, nor other compilers tolerating such
>>>>>> misuse.
>>>>> 
>>>>> 
>>>>> Thank Dimitri.
>>>>> You are right. I turned it into an error. New patch attached.
>>>> 
>>>> It would be good to have tests in test/Sema for cases we reject.
>>>> 
>>>> Sorry for not saying this right away, I just thought about it.
>>> 
>>> The new patch with the added test case in test/Sema
>> 
>> +static void handleMinSizeAttr(Sema &S, Decl *D, const AttributeList &Attr) {
>> +  // Check the attribute arguments.
>> +  if (!checkAttributeNumArgs(S, Attr, 0))
>> +    return;
>> +
>> +  if (!isa<FunctionDecl>(D)) {
>> +    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
>> +      << Attr.getName() << ExpectedFunction;
>> +    return;
>> +  }
>> +
>> +  D->addAttr(::new (S.Context) MinSizeAttr(Attr.getRange(), S.Context));
>> +}
>> 
>> 
>> Should this also work for Objective-C methods, e.g., ObjCMethodDecls?
> 
> I guess it may have an interest but I have to admit I have never used 
> Objective-C.
> If you think it is interesting, I can modify the code to allow that.

Yes, it's important.

>> 
>> Also, please add a test involving C++ function templates, to be sure that 
>> the attribute gets propagated to the instantiation correctly.
> 
> It is in the new patch.

Thanks!

        - Doug

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to