LGTM, thanks!
- Doug
On Nov 1, 2012, at 4:43 PM, Quentin Colombet <[email protected]> wrote:
>
> On Nov 1, 2012, at 3:57 PM, Douglas Gregor <[email protected]> wrote:
>
>>
>> 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.
>>
> Allowed that and added a test case for Objective-C
>
> Patch attached
>
> Quentin
> <MinSizeFE.patch>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits