LGTM, thanks! - Doug
On Nov 1, 2012, at 4:43 PM, Quentin Colombet <qcolom...@apple.com> wrote: > > On Nov 1, 2012, at 3:57 PM, Douglas Gregor <dgre...@apple.com> wrote: > >> >> On Nov 1, 2012, at 1:31 PM, Quentin Colombet <qcolom...@apple.com> wrote: >> >>> Hi Doug, >>> >>> On Nov 1, 2012, at 11:46 AM, Douglas Gregor <dgre...@apple.com> wrote: >>> >>>> >>>> On Oct 31, 2012, at 11:55 AM, Quentin Colombet <qcolom...@apple.com> wrote: >>>> >>>>> >>>>> On Oct 30, 2012, at 1:40 PM, Dmitri Gribenko <griboz...@gmail.com> wrote: >>>>> >>>>>> On Tue, Oct 30, 2012 at 10:29 PM, Quentin Colombet <qcolom...@apple.com> >>>>>> wrote: >>>>>>> >>>>>>> On Oct 30, 2012, at 12:36 PM, Dmitri Gribenko <griboz...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Quentin, >>>>>>>> >>>>>>>> On Tue, Oct 30, 2012 at 9:13 PM, Quentin Colombet >>>>>>>> <qcolom...@apple.com> 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 cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits