[cfe-commits] [PATCH 0/4] DiagnoseInvalidRedeclaration fixes and partial ActOnFunctionDeclarator refactoring

Kaelyn Uhrain rikka at google.com
Thu Sep 29 13:35:04 PDT 2011


I forgot to mention two things:
  * The remaining args passed to DiagnoseInvalidRedeclaration are, as far as
I can tell, not able to be extracted from the other parameters.
  * Since the ActOnFDArgs struct is down to 4 fields and DIR has only 3
other arguments, I am open to either keeping the struct or dropping it and
moving its fields back into the parameter list for DIR.

 - Kaelyn

On Thu, Sep 29, 2011 at 1:27 PM, Kaelyn Uhrain <rikka at google.com> wrote:

> Here are my patch for making DiagnoseInvalidRedeclaration not
> typo-correction a function name to one that will create additional compiler
> errors, along with several cleanup/refactoring patches.
>
> The refactoring in the second patch (the bool flag changes) was done to
> reduce how much extra data DiagnoseInvalidRedeclaration needs to be passed
> to be able to call Sema::ActOnFunctionDeclarator. It has the added bonus of
> making the parameter lists of several Sema methods less atrocious. :)
>
> Strictly speaking, the third patch (splitting up ActOnFunctionDeclarator a
> little) isn't needed by the other three patches. I'm including it here since
> it was a part of my work to trim down the extra arguments needed by
> DiagnoseInvalidRedeclaration, and it makes ActOnFunctionDeclarator a little
> less painful to examine.
>
> The fourth patch just removes a few of the extra args to
> ActOnFunctionDeclarator as the data is already in either the Declarator or
> the FunctionDecl (which I'd discovered while working on the previous two
> patches).
>
> Cheers,
> Kaelyn
>
>
> Kaelyn Uhrain (4):
>  Only accept a typo correction if it doesn't trigger additional errors
>  Move some bool flags out of function parameter lists.
>  Move a couple chunks of ActOnFunctionDeclarator to separate functions
>  Clean up DiagnoseInvalidRedeclaration a bit
>
>  include/clang/Sema/DeclSpec.h            |   17 +-
>  include/clang/Sema/Sema.h                |   33 +-
>  lib/Parse/ParseCXXInlineMethods.cpp      |    6 +-
>  lib/Parse/ParseDeclCXX.cpp               |    4 +-
>  lib/Parse/Parser.cpp                     |    4 +-
>  lib/Sema/SemaDecl.cpp                    |  674
> +++++++++++++++++-------------
>  lib/Sema/SemaDeclCXX.cpp                 |   20 +-
>  lib/Sema/SemaTemplate.cpp                |    6 +-
>  lib/Sema/SemaTemplateInstantiateDecl.cpp |   13 +-
>  test/SemaCXX/function-redecl.cpp         |    5 +-
>  10 files changed, 444 insertions(+), 338 deletions(-)
>
> --
> 1.7.3.1
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110929/cb4c40e8/attachment.html>


More information about the cfe-commits mailing list