]> granicus.if.org Git - clang/commitdiff
[Analyzer] Document a gotcha: for C++ -analyze-function requires parameters in functi...
authorGeorge Karpenkov <ekarpenkov@apple.com>
Sat, 30 Sep 2017 00:07:22 +0000 (00:07 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Sat, 30 Sep 2017 00:07:22 +0000 (00:07 +0000)
Differential Revision: https://reviews.llvm.org/D37596

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314573 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/CC1Options.td
www/analyzer/checker_dev_manual.html

index 385d34d4e7157f0e43f7644f1ac8b6ae2c4ff4dd..5dbf0afd8df041fcbb439cbcfc525a1c03cba0fd 100644 (file)
@@ -70,7 +70,7 @@ def analyzer_opt_analyze_nested_blocks : Flag<["-"], "analyzer-opt-analyze-neste
 def analyzer_display_progress : Flag<["-"], "analyzer-display-progress">,
   HelpText<"Emit verbose output about the analyzer's progress">;
 def analyze_function : Separate<["-"], "analyze-function">,
-  HelpText<"Run analysis on specific function">;
+  HelpText<"Run analysis on specific function (for C++ include parameters in name)">;
 def analyze_function_EQ : Joined<["-"], "analyze-function=">, Alias<analyze_function>;
 def analyzer_eagerly_assume : Flag<["-"], "analyzer-eagerly-assume">,
   HelpText<"Eagerly assume the truth/falseness of some symbolic constraints">;
index cdc2496b99ca77a75fd89e5f65f92f8e3bdf4522..4883556383f38556c46c2f9f45b459734d8252c6 100644 (file)
@@ -575,8 +575,8 @@ execute a single checker:
 processing a large file use the  <tt><b>-analyzer-display-progress</b></tt>
 option.</p>
 
-<p>You can analyze a particular function within the file, which is often useful
-because the problem is always in a certain function:</p>
+<p>To selectively analyze only the given function, use the
+<tt><b>-analyze-function</b></tt> option:</p>
 <pre class="code">
     $ <b>clang -cc1 -analyze -analyzer-checker=core test.c -analyzer-display-progress</b>
     ANALYZE (Syntax): test.c foo
@@ -588,6 +588,16 @@ because the problem is always in a certain function:</p>
     ANALYZE (Path,  Inline_Regular): test.c foo
 </pre>
 
+<b>Note: </b> a fully qualified function name has to be used when selecting
+C++ functions and methods, Objective-C methods and blocks, e.g.:
+
+<pre class="code">
+    $ <b>clang -cc1 -analyze -analyzer-checker=core test.cc -analyze-function=foo(int)</b>
+</pre>
+
+The fully qualified name can be found from the
+<tt><b>-analyzer-display-progress</b></tt> output.
+
 <p>The bug reporter mechanism removes path diagnostics inside intermediate
 function calls that have returned by the time the bug was found and contain
 no interesting pieces. Usually it is up to the checkers to produce more