JonasToth added a comment.

What happens to pointers in a typedef (in the sense of `*` instead of `&`)?



================
Comment at: clang-tidy/utils/ExprMutationAnalyzer.cpp:51
 const auto nonConstReferenceType = [] {
-  return referenceType(pointee(unless(isConstQualified())));
+  return hasUnqualifiedDesugaredType(
+      referenceType(pointee(unless(isConstQualified()))));
----------------
Not directly related, but this matcher matches universal references, even 
though they might result in a value. (one of the bugs lebedevri reported).


================
Comment at: unittests/clang-tidy/ExprMutationAnalyzerTest.cpp:171
 
+  AST = tooling::buildASTFromCode("typedef int& IntRef;"
+                                  "void g(IntRef); void f() { int x; g(x); }");
----------------
i think the following tests should be added as well

- `typedef const int& IntRef;`
- `template <typename T> using TemplateRef = T&`

It would be better to have at least one positive and negative test (with 
`const` and without `const` in the typedef) for each of theses cases.




Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D50953



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to