[PATCH] D51300: [analyzer][UninitializedObjectChecker] No longer using nonloc::LazyCompoundVal

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 5 11:47:39 PDT 2018


NoQ added a comment.

Very easy:

1. Put preprocessed file that crashes into `repro.cpp` (`.c`, `.m`, whatever).
2. Write `repro.sh` as follows:

  #!/bin/bash
  blah/blah/path/to/clang -cc1 -analyze -blah-blah-arguments-you-need-to-cause-a-crash repro.cpp 2>&1 | grep "Any assertion message or whatever"

3. Do:

  creduce repro.sh repro.cpp

4. Wait until it finishes.
5. `repro.cpp` now contains the reduced test case.

Tip for speed:

- The repro.sh script should be as fast as possible. Use a release+asserts build of clang.
- Also `-analyze-function top_function_that_we_analyze_when_we_crash` is a great flag to add to the run-line if possible, because it'll make the test much faster; see `-analyzer-display-progress` to figure out how to specify the function; if it's a lambda or a block you're out of luck because you'll need to specify line number which would change during reduce; you may also fail because top-level analyses are interacting a bit, so it may fail to crash if you restrict to a function.


https://reviews.llvm.org/D51300





More information about the cfe-commits mailing list