Index: lib/StaticAnalyzer/Core/ExprEngine.cpp =================================================================== --- lib/StaticAnalyzer/Core/ExprEngine.cpp +++ lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -2463,7 +2463,12 @@ currBldrCtx->blockCount()); state = state->assume(V.castAs(), true); Bldr.generateNode(Ex, Pred, state->BindExpr(Ex, LCtx, V), nullptr, - ProgramPoint::PostLValueKind); + ProgramPoint::PostLValueKind); + return; + } + if (const auto* BD = dyn_cast(D)) { + // FIXME: proper support for bound declarations. + // For now, let's just prevent crashing. return; } Index: test/Analysis/structured_bindings.cc =================================================================== --- test/Analysis/structured_bindings.cc +++ test/Analysis/structured_bindings.cc @@ -0,0 +1,10 @@ +// RUN: %clang_analyze_cc1 -std=c++17 -analyzer-checker=core -verify %s + +// expected-no-diagnostics +struct s { int a; }; +int foo() { + auto[a] = s{1}; // FIXME: proper modelling + if (a) { + } +} +