<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Assertion failure in clang::ento::ExprEngine::elideDestructor"
   href="https://bugs.llvm.org/show_bug.cgi?id=38072">38072</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Assertion failure in clang::ento::ExprEngine::elideDestructor
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Static Analyzer
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>noqnoqneo@gmail.com
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>alexfh@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dcoughlin@apple.com, ekarpenkov@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>$ cat test-ento__ExprEngine__elideDestructor.cc
struct a {
  ~a();
};
struct F {
  a d;
  F(char *, a = a());
};
void g() {
  char h[1];
  for (int i = 0;;) F j(i ? j : h);
}
$ ./clang-tidy -checks=-*,clang-analyzer*
test-ento__ExprEngine__elideDestructor.cc -- -std=c++11 
assert.h assertion failed at
llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:485 in static
clang::ento::ProgramStateRef
clang::ento::ExprEngine::elideDestructor(clang::ento::ProgramStateRef, const
clang::CXXBindTemporaryExpr *, const clang::LocationContext *):
!State->contains<ElidedDestructors>(I)
    @     0x559134e889d6  __assert_fail
    @     0x559132b8a025  clang::ento::ExprEngine::elideDestructor()
    @     0x559132bb9722 
clang::ento::ExprEngine::prepareForObjectConstruction()
    @     0x559132bb962d 
clang::ento::ExprEngine::prepareForObjectConstruction()
    @     0x559132bb962d 
clang::ento::ExprEngine::prepareForObjectConstruction()
    @     0x559132bba6eb  clang::ento::ExprEngine::VisitCXXConstructExpr()
    @     0x559132b8e30d  clang::ento::ExprEngine::Visit()
    @     0x559132b8b52e  clang::ento::ExprEngine::ProcessStmt()
    @     0x559132b8b24b  clang::ento::ExprEngine::processCFGElement()
    @     0x559132bac965  clang::ento::CoreEngine::HandlePostStmt()
    @     0x559132babdbd  clang::ento::CoreEngine::ExecuteWorkList()
    @     0x5591328dbc66  (anonymous
namespace)::AnalysisConsumer::ActionExprEngine()
    @     0x5591328db7e6  (anonymous namespace)::AnalysisConsumer::HandleCode()
    @     0x5591328c73b4  (anonymous
namespace)::AnalysisConsumer::HandleTranslationUnit()

This is most likely caused by r335800.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>