[PATCH] D19672: [clang-tidy] cppcoreguidelines-pro-type-member-init should not complain about static variables

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 28 12:27:52 PDT 2016


aaron.ballman added inline comments.

================
Comment at: clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:284
@@ -283,2 +283,3 @@
       varDecl(isDefinition(), HasDefaultConstructor,
+              hasAutomaticStorageDuration(),
               hasType(recordDecl(has(fieldDecl()),
----------------
michael_miller wrote:
> alexfh wrote:
> > aaron.ballman wrote:
> > > We should add a test that this still diagnoses variables with dynamic storage duration. Alternatively, this could be `unless(anyOf(hasStaticStorageDuration(), hasThreadStorageDuration()))`
> > I don't think it ever diagnosed on the dynamic storage duration, since it doesn't match `cxxNewExpr` ;)
> Perhaps unrelated but a new expression without the parens wouldn't value-initialize a record type with a default constructor and potentially be a problematic. Maybe we should be checking cxxNewExpr.
Shouldn't it have diagnosed:
```
struct s {
  int *i;
  s() {}
};
```
?


http://reviews.llvm.org/D19672





More information about the cfe-commits mailing list