// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-output=text -verify %s
// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-output=plist-multi-file  %s -o %t.plist
// RUN: FileCheck --input-file=%t.plist %s
void foo_irrelevant(int c) {
    if (c)
        return;
    c++;
    return;
}
void foo(int c, int *x) {
    if (c)
           //expected-note@-1{{Assuming 'c' is not equal to 0}}
           //expected-note@-2{{Taking true branch}}
           return; // expected-note{{Returning without writing to '*x'}}
    *x = 5;
}
int use(int c) {
    int xx; //expected-note {{'xx' declared without an initial value}}
    int *y = &xx;
    foo (c, y);
                //expected-note@-1{{Calling 'foo'}}
                //expected-note@-2{{Returning from 'foo'}}
    foo_irrelevant(c);
    return xx+3; //expected-warning{{The left operand of '+' is a garbage value}}
                 //expected-note@-1{{The left operand of '+' is a garbage value}}
}
void initArray(int x, double XYZ[3]) {
    if (x <= 0) //expected-note {{Taking true branch}}
                //expected-note@-1 {{Assuming 'x' is <= 0}}
        return;
    XYZ[0] = 1;
    XYZ[1] = 1;
    XYZ[2] = 1;
}
int testPassingParentRegionArray(int x) {
    double XYZ[3];
    initArray(x, XYZ); //expected-note {{Calling 'initArray'}}
                       //expected-note@-1 {{Returning from 'initArray'}}
    return 1 * XYZ[1]; //expected-warning {{The right operand of '*' is a garbage value}}
                       //expected-note@-1 {{The right operand of '*' is a garbage value}}
}
double *getValidPtr();
struct WithFields {
  double *f1;
};
void initStruct(int x, struct WithFields *X) {
  if (x <= 0) //expected-note {{Taking true branch}}
              //expected-note@-1 {{Assuming 'x' is <= 0}}
    return; //expected-note{{Returning without writing to 'X->f1'}}
  X->f1 = getValidPtr();
}
double testPassingParentRegionStruct(int x) {
  struct WithFields st;
  st.f1 = 0; // expected-note {{Null pointer value stored to 'st.f1'}}
  initStruct(x, &st); //expected-note {{Calling 'initStruct'}}
                      //expected-note@-1 {{Returning from 'initStruct'}}
  return (*st.f1); //expected-warning {{Dereference of null pointer}}
                   //expected-note@-1{{Dereference of null pointer (loaded from field 'f1')}}
}
// CHECK:  diagnostics
// CHECK-NEXT:  
// CHECK-NEXT:   
// CHECK-NEXT:    path
// CHECK-NEXT:    
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line20
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line20
// CHECK-NEXT:          col5
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line20
// CHECK-NEXT:          col10
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      'xx' declared without an initial value
// CHECK-NEXT:      message
// CHECK-NEXT:      'xx' declared without an initial value
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line20
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line20
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line22
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line22
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line22
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line22
// CHECK-NEXT:          col5
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line22
// CHECK-NEXT:          col14
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Calling 'foo'
// CHECK-NEXT:      message
// CHECK-NEXT:      Calling 'foo'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line11
// CHECK-NEXT:       col1
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Entered call from 'use'
// CHECK-NEXT:      message
// CHECK-NEXT:      Entered call from 'use'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line11
// CHECK-NEXT:            col1
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line11
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col6
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col6
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line12
// CHECK-NEXT:       col9
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line12
// CHECK-NEXT:          col9
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line12
// CHECK-NEXT:          col9
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Assuming 'c' is not equal to 0
// CHECK-NEXT:      message
// CHECK-NEXT:      Assuming 'c' is not equal to 0
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line12
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col17
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col17
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col17
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line15
// CHECK-NEXT:       col12
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Returning without writing to '*x'
// CHECK-NEXT:      message
// CHECK-NEXT:      Returning without writing to '*x'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col17
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line15
// CHECK-NEXT:            col17
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line22
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line22
// CHECK-NEXT:          col5
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line22
// CHECK-NEXT:          col14
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Returning from 'foo'
// CHECK-NEXT:      message
// CHECK-NEXT:      Returning from 'foo'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line22
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line22
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line25
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line25
// CHECK-NEXT:            col18
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line25
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line25
// CHECK-NEXT:            col18
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line26
// CHECK-NEXT:            col14
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line26
// CHECK-NEXT:            col14
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line26
// CHECK-NEXT:       col14
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line26
// CHECK-NEXT:          col12
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line26
// CHECK-NEXT:          col13
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      The left operand of '+' is a garbage value
// CHECK-NEXT:      message
// CHECK-NEXT:      The left operand of '+' is a garbage value
// CHECK-NEXT:     
// CHECK-NEXT:    
// CHECK-NEXT:    descriptionThe left operand of '+' is a garbage value
// CHECK-NEXT:    categoryLogic error
// CHECK-NEXT:    typeResult of operation is garbage or undefined
// CHECK-NEXT:    check_namecore.UndefinedBinaryOperatorResult
// CHECK-NEXT:    
// CHECK-NEXT:    issue_hash_content_of_line_in_contextae5e3bd03d6d97614947942dae18e1da
// CHECK-NEXT:   issue_context_kindfunction
// CHECK-NEXT:   issue_contextuse
// CHECK-NEXT:   issue_hash_function_offset7
// CHECK-NEXT:   location
// CHECK-NEXT:   
// CHECK-NEXT:    line26
// CHECK-NEXT:    col14
// CHECK-NEXT:    file0
// CHECK-NEXT:   
// CHECK-NEXT:   
// CHECK-NEXT:   
// CHECK-NEXT:    path
// CHECK-NEXT:    
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line39
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line39
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line40
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line40
// CHECK-NEXT:            col13
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line40
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line40
// CHECK-NEXT:          col5
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line40
// CHECK-NEXT:          col21
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Calling 'initArray'
// CHECK-NEXT:      message
// CHECK-NEXT:      Calling 'initArray'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line30
// CHECK-NEXT:       col1
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Entered call from 'testPassingParentRegionArray'
// CHECK-NEXT:      message
// CHECK-NEXT:      Entered call from 'testPassingParentRegionArray'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line30
// CHECK-NEXT:            col1
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line30
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col6
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col6
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line31
// CHECK-NEXT:       col9
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line31
// CHECK-NEXT:          col9
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line31
// CHECK-NEXT:          col14
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Assuming 'x' is <= 0
// CHECK-NEXT:      message
// CHECK-NEXT:      Assuming 'x' is <= 0
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line31
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line33
// CHECK-NEXT:            col9
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line33
// CHECK-NEXT:            col14
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line40
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line40
// CHECK-NEXT:          col5
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line40
// CHECK-NEXT:          col21
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Returning from 'initArray'
// CHECK-NEXT:      message
// CHECK-NEXT:      Returning from 'initArray'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line40
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line40
// CHECK-NEXT:            col13
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line42
// CHECK-NEXT:            col14
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line42
// CHECK-NEXT:            col14
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line42
// CHECK-NEXT:       col14
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line42
// CHECK-NEXT:          col16
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line42
// CHECK-NEXT:          col21
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      The right operand of '*' is a garbage value
// CHECK-NEXT:      message
// CHECK-NEXT:      The right operand of '*' is a garbage value
// CHECK-NEXT:     
// CHECK-NEXT:    
// CHECK-NEXT:    descriptionThe right operand of '*' is a garbage value
// CHECK-NEXT:    categoryLogic error
// CHECK-NEXT:    typeResult of operation is garbage or undefined
// CHECK-NEXT:    check_namecore.UndefinedBinaryOperatorResult
// CHECK-NEXT:    
// CHECK-NEXT:    issue_hash_content_of_line_in_context96cf3258da3df14d13cd5c2236c9cb27
// CHECK-NEXT:   issue_context_kindfunction
// CHECK-NEXT:   issue_contexttestPassingParentRegionArray
// CHECK-NEXT:   issue_hash_function_offset4
// CHECK-NEXT:   location
// CHECK-NEXT:   
// CHECK-NEXT:    line42
// CHECK-NEXT:    col14
// CHECK-NEXT:    file0
// CHECK-NEXT:   
// CHECK-NEXT:   
// CHECK-NEXT:   
// CHECK-NEXT:    path
// CHECK-NEXT:    
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line58
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line58
// CHECK-NEXT:            col8
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line59
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line59
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line59
// CHECK-NEXT:       col3
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line59
// CHECK-NEXT:          col3
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line59
// CHECK-NEXT:          col11
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Null pointer value stored to 'st.f1'
// CHECK-NEXT:      message
// CHECK-NEXT:      Null pointer value stored to 'st.f1'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line59
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line59
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line60
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line60
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line60
// CHECK-NEXT:       col3
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line60
// CHECK-NEXT:          col3
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line60
// CHECK-NEXT:          col20
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Calling 'initStruct'
// CHECK-NEXT:      message
// CHECK-NEXT:      Calling 'initStruct'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line50
// CHECK-NEXT:       col1
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Entered call from 'testPassingParentRegionStruct'
// CHECK-NEXT:      message
// CHECK-NEXT:      Entered call from 'testPassingParentRegionStruct'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line50
// CHECK-NEXT:            col1
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line50
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col4
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line51
// CHECK-NEXT:       col7
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line51
// CHECK-NEXT:          col7
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line51
// CHECK-NEXT:          col12
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Assuming 'x' is <= 0
// CHECK-NEXT:      message
// CHECK-NEXT:      Assuming 'x' is <= 0
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line51
// CHECK-NEXT:            col7
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line54
// CHECK-NEXT:       col5
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      depth1
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Returning without writing to 'X->f1'
// CHECK-NEXT:      message
// CHECK-NEXT:      Returning without writing to 'X->f1'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col5
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line54
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line60
// CHECK-NEXT:       col3
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line60
// CHECK-NEXT:          col3
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line60
// CHECK-NEXT:          col20
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Returning from 'initStruct'
// CHECK-NEXT:      message
// CHECK-NEXT:      Returning from 'initStruct'
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line60
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line60
// CHECK-NEXT:            col12
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col8
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindcontrol
// CHECK-NEXT:      edges
// CHECK-NEXT:       
// CHECK-NEXT:        
// CHECK-NEXT:         start
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col3
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col8
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:         end
// CHECK-NEXT:          
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:           
// CHECK-NEXT:            line62
// CHECK-NEXT:            col10
// CHECK-NEXT:            file0
// CHECK-NEXT:           
// CHECK-NEXT:          
// CHECK-NEXT:        
// CHECK-NEXT:       
// CHECK-NEXT:     
// CHECK-NEXT:     
// CHECK-NEXT:      kindevent
// CHECK-NEXT:      location
// CHECK-NEXT:      
// CHECK-NEXT:       line62
// CHECK-NEXT:       col10
// CHECK-NEXT:       file0
// CHECK-NEXT:      
// CHECK-NEXT:      ranges
// CHECK-NEXT:      
// CHECK-NEXT:        
// CHECK-NEXT:         
// CHECK-NEXT:          line62
// CHECK-NEXT:          col15
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:         
// CHECK-NEXT:          line62
// CHECK-NEXT:          col16
// CHECK-NEXT:          file0
// CHECK-NEXT:         
// CHECK-NEXT:        
// CHECK-NEXT:      
// CHECK-NEXT:      depth0
// CHECK-NEXT:      extended_message
// CHECK-NEXT:      Dereference of null pointer (loaded from field 'f1')
// CHECK-NEXT:      message
// CHECK-NEXT:      Dereference of null pointer (loaded from field 'f1')
// CHECK-NEXT:     
// CHECK-NEXT:    
// CHECK-NEXT:    descriptionDereference of null pointer (loaded from field 'f1')
// CHECK-NEXT:    categoryLogic error
// CHECK-NEXT:    typeDereference of null pointer
// CHECK-NEXT:    check_namecore.NullDereference
// CHECK-NEXT:    
// CHECK-NEXT:    issue_hash_content_of_line_in_context299055864402de225b0ab4f2ecd8e76c
// CHECK-NEXT:   issue_context_kindfunction
// CHECK-NEXT:   issue_contexttestPassingParentRegionStruct
// CHECK-NEXT:   issue_hash_function_offset5
// CHECK-NEXT:   location
// CHECK-NEXT:   
// CHECK-NEXT:    line62
// CHECK-NEXT:    col10
// CHECK-NEXT:    file0
// CHECK-NEXT:   
// CHECK-NEXT:   
// CHECK-NEXT: