NoQ accepted this revision.
NoQ added a comment.
This revision is now accepted and ready to land.

This looks straightforward, thanks!



================
Comment at: clang/test/Analysis/explain-svals.cpp:97
 void test_6() {
-  clang_analyzer_explain(conjure_S()); // expected-warning-re{{{{^lazily 
frozen compound value of temporary object constructed at statement 
'conjure_S\(\)'$}}}}
+  clang_analyzer_explain(conjure_S()); // expected-warning-re{{{{^lazily 
frozen compound value of parameter 0 of function 
'clang_analyzer_explain\(\)'$}}}}
   clang_analyzer_explain(conjure_S().z); // expected-warning-re{{{{^value 
derived from \(symbol of type 'int' conjured at statement 'conjure_S\(\)'\) for 
field 'z' of temporary object constructed at statement 'conjure_S\(\)'$}}}}
----------------
Wonderful!

I think "parameter 1" would make a bit more sense. Or, even better, "1st 
parameter" like in regular warnings.

(this probably needs to be fixed in an older patch)


================
Comment at: clang/test/Analysis/temporaries.cpp:893
     glob = 1;
-    // FIXME: Why is destructor not inlined in C++17
     clang_analyzer_checkInlined(true);
 #ifdef TEMPORARY_DTORS
----------------
martong wrote:
> baloghadamsoftware wrote:
> > I wonder whether `clang_analyzer_checkInlined()` works correctly with this 
> > patch: it seems it only checks for stack frame which now any function with 
> > definition can have.
> So, why not try that in a test with a function that does not have a 
> definition?
> it seems it only checks for stack frame which now any function with 
> definition can have

Before that, it checks that `clang_analyzer_checkInlined()` was evaluated 
during analysis. You can't evaluate this line if you didn't analyze `~C()` 
either as top-level function or through inlining.


================
Comment at: clang/unittests/StaticAnalyzer/ParamRegionTest.cpp:87
                   std::make_unique<ParamRegionTestAction>(),
+                  "void foo(int n); "
+                  "void bar(int l); "
----------------
martong wrote:
> I think a raw string literal with clang-formatted code in it would make the 
> test more valuable.
I also think it's going to be valuable to test what's going to happen if the 
forward-declaration is //after// the definition; that's where we were 
previously confused.


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

https://reviews.llvm.org/D80286



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

Reply via email to