[analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'
authorCsaba Dabis <dabis.csaba98@gmail.com>
Wed, 29 May 2019 20:13:29 +0000 (20:13 +0000)
committerCsaba Dabis <dabis.csaba98@gmail.com>
Wed, 29 May 2019 20:13:29 +0000 (20:13 +0000)
Summary: -

Reviewers: NoQ, alexfh

Reviewed By: alexfh

Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
             mikhail.ramalho, Szelethus, donat.nagy, dkrupp

Tags: #clang

Differential Revision: https://reviews.llvm.org/D61060

llvm-svn: 362023

clang/test/Analysis/Inputs/expected-plists/NewDelete-path-notes.cpp.plist
clang/test/Analysis/NewDelete-path-notes.cpp

index 21204b0..fb7a03d 100644 (file)
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>7</integer>
-      <key>col</key><integer>12</integer>
+      <key>line</key><integer>24</integer>
+      <key>col</key><integer>3</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <key>ranges</key>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>7</integer>
-         <key>col</key><integer>12</integer>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>3</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>7</integer>
-         <key>col</key><integer>18</integer>
+         <key>line</key><integer>24</integer>
+         <key>col</key><integer>10</integer>
          <key>file</key><integer>0</integer>
         </dict>
        </array>
      </array>
      <key>depth</key><integer>0</integer>
      <key>extended_message</key>
-     <string>Memory is allocated</string>
+     <string>Attempt to free released memory</string>
      <key>message</key>
-     <string>Memory is allocated</string>
+     <string>Attempt to free released memory</string>
     </dict>
     <dict>
      <key>kind</key><string>control</string>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>7</integer>
-           <key>col</key><integer>3</integer>
+           <key>line</key><integer>17</integer>
+           <key>col</key><integer>1</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>7</integer>
-           <key>col</key><integer>5</integer>
+           <key>line</key><integer>17</integer>
+           <key>col</key><integer>4</integer>
            <key>file</key><integer>0</integer>
           </dict>
          </array>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>9</integer>
+           <key>line</key><integer>18</integer>
            <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>4</integer>
+           <key>line</key><integer>18</integer>
+           <key>col</key><integer>5</integer>
            <key>file</key><integer>0</integer>
           </dict>
          </array>
       </array>
     </dict>
     <dict>
+     <key>kind</key><string>event</string>
+     <key>location</key>
+     <dict>
+      <key>line</key><integer>18</integer>
+      <key>col</key><integer>12</integer>
+      <key>file</key><integer>0</integer>
+     </dict>
+     <key>ranges</key>
+     <array>
+       <array>
+        <dict>
+         <key>line</key><integer>18</integer>
+         <key>col</key><integer>12</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+        <dict>
+         <key>line</key><integer>18</integer>
+         <key>col</key><integer>18</integer>
+         <key>file</key><integer>0</integer>
+        </dict>
+       </array>
+     </array>
+     <key>depth</key><integer>0</integer>
+     <key>extended_message</key>
+     <string>Memory is allocated</string>
+     <key>message</key>
+     <string>Memory is allocated</string>
+    </dict>
+    <dict>
      <key>kind</key><string>control</string>
      <key>edges</key>
       <array>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>9</integer>
+           <key>line</key><integer>18</integer>
            <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>4</integer>
+           <key>line</key><integer>18</integer>
+           <key>col</key><integer>5</integer>
            <key>file</key><integer>0</integer>
           </dict>
          </array>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>7</integer>
+           <key>line</key><integer>20</integer>
+           <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>7</integer>
+           <key>line</key><integer>20</integer>
+           <key>col</key><integer>4</integer>
            <key>file</key><integer>0</integer>
           </dict>
          </array>
       </array>
     </dict>
     <dict>
-     <key>kind</key><string>pop-up</string>
-     <key>location</key>
-     <dict>
-      <key>line</key><integer>9</integer>
-      <key>col</key><integer>7</integer>
-      <key>file</key><integer>0</integer>
-     </dict>
-     <key>ranges</key>
-     <array>
-       <array>
-        <dict>
-         <key>line</key><integer>9</integer>
-         <key>col</key><integer>7</integer>
-         <key>file</key><integer>0</integer>
-        </dict>
-        <dict>
-         <key>line</key><integer>9</integer>
-         <key>col</key><integer>7</integer>
-         <key>file</key><integer>0</integer>
-        </dict>
-       </array>
-     </array>
-     <key>extended_message</key>
-     <string>&apos;p&apos; is non-null</string>
-     <key>message</key>
-     <string>&apos;p&apos; is non-null</string>
-    </dict>
-    <dict>
      <key>kind</key><string>control</string>
      <key>edges</key>
       <array>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>7</integer>
+           <key>line</key><integer>20</integer>
+           <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>9</integer>
-           <key>col</key><integer>7</integer>
+           <key>line</key><integer>20</integer>
+           <key>col</key><integer>4</integer>
            <key>file</key><integer>0</integer>
           </dict>
          </array>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>11</integer>
+           <key>line</key><integer>21</integer>
            <key>col</key><integer>5</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>11</integer>
+           <key>line</key><integer>21</integer>
            <key>col</key><integer>10</integer>
            <key>file</key><integer>0</integer>
           </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>11</integer>
+      <key>line</key><integer>21</integer>
       <key>col</key><integer>5</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>11</integer>
+         <key>line</key><integer>21</integer>
          <key>col</key><integer>5</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>11</integer>
+         <key>line</key><integer>21</integer>
          <key>col</key><integer>12</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>11</integer>
+           <key>line</key><integer>21</integer>
            <key>col</key><integer>5</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>11</integer>
+           <key>line</key><integer>21</integer>
            <key>col</key><integer>10</integer>
            <key>file</key><integer>0</integer>
           </dict>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>14</integer>
+           <key>line</key><integer>24</integer>
            <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>14</integer>
+           <key>line</key><integer>24</integer>
            <key>col</key><integer>8</integer>
            <key>file</key><integer>0</integer>
           </dict>
        </dict>
       </array>
     </dict>
-    <dict>
-     <key>kind</key><string>event</string>
-     <key>location</key>
-     <dict>
-      <key>line</key><integer>14</integer>
-      <key>col</key><integer>3</integer>
-      <key>file</key><integer>0</integer>
-     </dict>
-     <key>ranges</key>
-     <array>
-       <array>
-        <dict>
-         <key>line</key><integer>14</integer>
-         <key>col</key><integer>3</integer>
-         <key>file</key><integer>0</integer>
-        </dict>
-        <dict>
-         <key>line</key><integer>14</integer>
-         <key>col</key><integer>10</integer>
-         <key>file</key><integer>0</integer>
-        </dict>
-       </array>
-     </array>
-     <key>depth</key><integer>0</integer>
-     <key>extended_message</key>
-     <string>Attempt to free released memory</string>
-     <key>message</key>
-     <string>Attempt to free released memory</string>
-    </dict>
    </array>
    <key>description</key><string>Attempt to free released memory</string>
    <key>category</key><string>Memory error</string>
    <key>issue_hash_content_of_line_in_context</key><string>bd8e324d09c70b9e2be6f824a4942e5a</string>
   <key>issue_context_kind</key><string>function</string>
   <key>issue_context</key><string>test</string>
-  <key>issue_hash_function_offset</key><string>8</string>
+  <key>issue_hash_function_offset</key><string>7</string>
   <key>location</key>
   <dict>
-   <key>line</key><integer>14</integer>
+   <key>line</key><integer>24</integer>
    <key>col</key><integer>3</integer>
    <key>file</key><integer>0</integer>
   </dict>
   <dict>
    <key>0</key>
    <array>
-    <integer>6</integer>
-    <integer>7</integer>
-    <integer>9</integer>
-    <integer>11</integer>
-    <integer>14</integer>
+    <integer>17</integer>
+    <integer>18</integer>
+    <integer>20</integer>
+    <integer>21</integer>
+    <integer>24</integer>
    </array>
   </dict>
   </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>25</integer>
+      <key>line</key><integer>35</integer>
       <key>col</key><integer>2</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>25</integer>
+         <key>line</key><integer>35</integer>
          <key>col</key><integer>2</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>25</integer>
+         <key>line</key><integer>35</integer>
          <key>col</key><integer>12</integer>
          <key>file</key><integer>0</integer>
         </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>19</integer>
+      <key>line</key><integer>29</integer>
       <key>col</key><integer>2</integer>
       <key>file</key><integer>0</integer>
      </dict>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>19</integer>
+           <key>line</key><integer>29</integer>
            <key>col</key><integer>2</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>19</integer>
+           <key>line</key><integer>29</integer>
            <key>col</key><integer>5</integer>
            <key>file</key><integer>0</integer>
           </dict>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>20</integer>
+           <key>line</key><integer>30</integer>
            <key>col</key><integer>3</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>20</integer>
+           <key>line</key><integer>30</integer>
            <key>col</key><integer>8</integer>
            <key>file</key><integer>0</integer>
           </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>20</integer>
+      <key>line</key><integer>30</integer>
       <key>col</key><integer>3</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>20</integer>
+         <key>line</key><integer>30</integer>
          <key>col</key><integer>3</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>20</integer>
+         <key>line</key><integer>30</integer>
          <key>col</key><integer>13</integer>
          <key>file</key><integer>0</integer>
         </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>25</integer>
+      <key>line</key><integer>35</integer>
       <key>col</key><integer>2</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>25</integer>
+         <key>line</key><integer>35</integer>
          <key>col</key><integer>2</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>25</integer>
+         <key>line</key><integer>35</integer>
          <key>col</key><integer>12</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <key>start</key>
          <array>
           <dict>
-           <key>line</key><integer>25</integer>
+           <key>line</key><integer>35</integer>
            <key>col</key><integer>2</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>25</integer>
+           <key>line</key><integer>35</integer>
            <key>col</key><integer>4</integer>
            <key>file</key><integer>0</integer>
           </dict>
         <key>end</key>
          <array>
           <dict>
-           <key>line</key><integer>27</integer>
+           <key>line</key><integer>37</integer>
            <key>col</key><integer>2</integer>
            <key>file</key><integer>0</integer>
           </dict>
           <dict>
-           <key>line</key><integer>27</integer>
+           <key>line</key><integer>37</integer>
            <key>col</key><integer>7</integer>
            <key>file</key><integer>0</integer>
           </dict>
      <key>kind</key><string>event</string>
      <key>location</key>
      <dict>
-      <key>line</key><integer>27</integer>
+      <key>line</key><integer>37</integer>
       <key>col</key><integer>2</integer>
       <key>file</key><integer>0</integer>
      </dict>
      <array>
        <array>
         <dict>
-         <key>line</key><integer>27</integer>
+         <key>line</key><integer>37</integer>
          <key>col</key><integer>2</integer>
          <key>file</key><integer>0</integer>
         </dict>
         <dict>
-         <key>line</key><integer>27</integer>
+         <key>line</key><integer>37</integer>
          <key>col</key><integer>11</integer>
          <key>file</key><integer>0</integer>
         </dict>
   <key>issue_hash_function_offset</key><string>3</string>
   <key>location</key>
   <dict>
-   <key>line</key><integer>27</integer>
+   <key>line</key><integer>37</integer>
    <key>col</key><integer>2</integer>
    <key>file</key><integer>0</integer>
   </dict>
   <dict>
    <key>0</key>
    <array>
-    <integer>19</integer>
-    <integer>20</integer>
-    <integer>24</integer>
-    <integer>25</integer>
-    <integer>27</integer>
+    <integer>29</integer>
+    <integer>30</integer>
+    <integer>34</integer>
+    <integer>35</integer>
+    <integer>37</integer>
    </array>
   </dict>
   </dict>
index 70fd973..d556947 100644 (file)
@@ -1,13 +1,23 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=cplusplus.NewDelete,unix.Malloc -analyzer-output=text -verify %s
-// RUN: %clang_analyze_cc1 -analyzer-checker=cplusplus.NewDelete,unix.Malloc -analyzer-output=text -analyzer-config c++-allocator-inlining=true -verify %s
-// RUN: %clang_analyze_cc1 -analyzer-checker=cplusplus.NewDelete,unix.Malloc -analyzer-output=plist %s -o %t.plist
-// RUN: cat %t.plist | %diff_plist %S/Inputs/expected-plists/NewDelete-path-notes.cpp.plist -
+// RUN: %clang_analyze_cc1 \
+// RUN:   -analyzer-checker=cplusplus.NewDelete,unix.Malloc \
+// RUN:   -analyzer-config add-pop-up-notes=false \
+// RUN:   -analyzer-output=text -verify %s
+// RUN: %clang_analyze_cc1 \
+// RUN:   -analyzer-checker=cplusplus.NewDelete,unix.Malloc \
+// RUN:   -analyzer-config c++-allocator-inlining=true \
+// RUN:   -analyzer-config add-pop-up-notes=false \
+// RUN:   -analyzer-output=text -verify %s
+// RUN: %clang_analyze_cc1 \
+// RUN:   -analyzer-checker=cplusplus.NewDelete,unix.Malloc \
+// RUN:   -analyzer-config add-pop-up-notes=false \
+// RUN:   -analyzer-output=plist %s -o %t.plist
+// RUN: cat %t.plist | %diff_plist \
+// RUN:   %S/Inputs/expected-plists/NewDelete-path-notes.cpp.plist -
 
 void test() {
   int *p = new int;
   // expected-note@-1 {{Memory is allocated}}
-  if (p) // expected-note {{'p' is non-null}}
-         // expected-note@-1 {{Taking true branch}}
+  if (p) // expected-note {{Taking true branch}}
     delete p;
     // expected-note@-1 {{Memory is released}}