[PATCH] D57787: [clang-tidy] modernize-avoid-c-arrays: avoid main function (PR40604)
Roman Lebedev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 6 11:14:17 PST 2019
lebedev.ri added a comment.
In D57787#1387406 <https://reviews.llvm.org/D57787#1387406>, @aaron.ballman wrote:
> LGTM aside from a nit.
Thank you for the review.
================
Comment at: clang-tidy/modernize/AvoidCArraysCheck.cpp:35
+ const clang::DeclContext *DC = Node.getDeclContext();
+ const clang::FunctionDecl *FD = llvm::dyn_cast<clang::FunctionDecl>(DC);
+ if (!FD)
----------------
aaron.ballman wrote:
> JonasToth wrote:
> > lebedev.ri wrote:
> > > lebedev.ri wrote:
> > > > JonasToth wrote:
> > > > > There is `FunctionDecl->castToDeclContext()` which is probably a better fit here.
> > > > I'm guessing you meant `cast*From*DeclContext()`.
> > > > Interesting, that function is never once used.
> > > > And it uses `static_cast<>()`..
> > > I'm not too sure about this.
> > > Given `ParmVarDecl`, are we sure it's `DeclContext` is *always* `FunctionDecl`?
> > From Doc "Represents a parameter to a function. " so i think it has always a `FunctionDecl` (or subclass) as DeclContext.
> >
> > Maybe that function is a relict? I just saw it in the docs too and thought it makes sense to use it. No opinion on that, @aaron.ballman do you know more on that?
> > From Doc "Represents a parameter to a function. " so i think it has always a FunctionDecl (or subclass) as DeclContext.
>
> `ObjCMethodDecl` is not a subclass of `FunctionDecl`, yet it contains `ParmVarDecl` objects and is a `DeclContext`.
>
> I would use `dyn_cast` here instead.
Aha!
Repository:
rCTE Clang Tools Extra
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57787/new/
https://reviews.llvm.org/D57787
More information about the cfe-commits
mailing list