xref: /llvm-project/clang/test/Analysis/html_diagnostics/notes-links.cpp (revision e73ae745b0d660d3974c04b2281575f325971338)
1*e73ae745SGuruprasad Hegde // RUN: rm -fR %t
2*e73ae745SGuruprasad Hegde // RUN: mkdir %t
3*e73ae745SGuruprasad Hegde // RUN: %clang_analyze_cc1 -analyzer-checker=optin.cplusplus.UninitializedObject \
4*e73ae745SGuruprasad Hegde // RUN:                    -analyzer-output=html -o %t -verify %s
5*e73ae745SGuruprasad Hegde // RUN: cat %t/report-*.html | FileCheck %s
6*e73ae745SGuruprasad Hegde 
7*e73ae745SGuruprasad Hegde struct A {
8*e73ae745SGuruprasad Hegde   int *iptr;
9*e73ae745SGuruprasad Hegde   int a;  // expected-note{{uninitialized field 'this->a'}}
10*e73ae745SGuruprasad Hegde   int b;  // expected-note{{uninitialized field 'this->b'}}
11*e73ae745SGuruprasad Hegde 
AA12*e73ae745SGuruprasad Hegde   A (int *iptr) : iptr(iptr) {} // expected-warning{{2 uninitialized fields at the end of the constructor call [optin.cplusplus.UninitializedObject]}}
13*e73ae745SGuruprasad Hegde };
14*e73ae745SGuruprasad Hegde 
f()15*e73ae745SGuruprasad Hegde void f() {
16*e73ae745SGuruprasad Hegde   A a(0);
17*e73ae745SGuruprasad Hegde }
18*e73ae745SGuruprasad Hegde 
19*e73ae745SGuruprasad Hegde //CHECK:      <tr><td class="rowname">Note:</td>
20*e73ae745SGuruprasad Hegde //CHECK-NOT:  <a href="#Note0">
21*e73ae745SGuruprasad Hegde //CHECK-SAME: <a href="#Note1">line 9, column 7</a>
22*e73ae745SGuruprasad Hegde //CHECK-SAME: <a href="#Note2">line 10, column 7</a>
23