// RUN: %clang_cc1 -std=c++11 -fsyntax-only -analyze -analyzer-checker=core -analyzer-config inline-lambdas=true -analyzer-output plist -verify %s -o %t // RUN: FileCheck --input-file=%t %s // Diagnostic inside a lambda void diagnosticFromLambda() { int i = 0; [=] { int p = 5/i; // expected-warning{{Division by zero}} (void)p; }(); } // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line8 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line8 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line12 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: The value 0 is assigned to field '' // CHECK: message // CHECK: The value 0 is assigned to field '' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line12 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Calling 'operator()' // CHECK: message // CHECK: Calling 'operator()' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line9 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'diagnosticFromLambda' // CHECK: message // CHECK: Entered call from 'diagnosticFromLambda' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line9 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: line9 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line10 // CHECK: col14 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col14 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line10 // CHECK: col14 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line10 // CHECK: col13 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col15 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Division by zero // CHECK: message // CHECK: Division by zero // CHECK: // CHECK: // CHECK: descriptionDivision by zero // CHECK: categoryLogic error // CHECK: typeDivision by zero // CHECK: check_namecore.DivideZero // CHECK: issue_context_kindC++ method // CHECK: issue_contextoperator() // CHECK: issue_hash1 // CHECK: location // CHECK: // CHECK: line10 // CHECK: col14 // CHECK: file0 // CHECK: // CHECK: // CHECK: