[PATCH] D150352: [clang][dataflow] Don't analyze templated declarations.

Martin Böhme via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 15 00:50:03 PDT 2023


mboehme added inline comments.


================
Comment at: clang/unittests/Analysis/FlowSensitive/TransferTest.cpp:2537
 
-TEST(TransferTest, DerefDependentPtr) {
   std::string Code = R"(
----------------
mboehme wrote:
> gribozavr2 wrote:
> > This `DerefDependentPtr` test was originally added in https://reviews.llvm.org/D117567 and re-landed in https://github.com/llvm/llvm-project/commit/acd4b0359097dd8ad166d569a4566879e82a2793
> > 
> > Could you try to revert the effects of those commits? Specifically:
> > 
> > - remove reference skipping from the transfer function for `UO_Deref` (and the comment),
> > 
> > - remove the `-fno-delayed-template-parsing` flag from `clang/unittests/Analysis/FlowSensitive/TransferTest.cpp`.
> Thanks for pointing this out! Done.
> - remove the `-fno-delayed-template-parsing` flag from `clang/unittests/Analysis/FlowSensitive/TransferTest.cpp`.

I've re-added this because removing it causes tests to fail on Windows.

`-fnodelayed-template-parsing` is the default everywhere except on Windows, so setting it explicitly makes tests on Windows behave the same as on other platforms. I've added a comment explaining this.

The reason that `-fnodelayed-template-parsing` was causing the tests to fail is that `checkDataflow()` only looks as function declarations that have a body, and late-parsed templated functions don't have bodies.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150352/new/

https://reviews.llvm.org/D150352



More information about the cfe-commits mailing list