Question about constexpr member initialization in AST


I’m trying to identify match std::atomic with is_always_lock_free = true. The problem is that VarDecl->ensureEvaluatedStmt() for VarDecl of is_always_lock_free gives ValueKind::None instead of Int.

The evaluation is AsyncBlockingCheck.cpp:319, the analyzed code is atomic class at concurrency-async-blocking.cpp:188 and template instantiation at concurrency-async-blocking.cpp:284. The code works as expected with --std=c++11, but gives ValueKind::None for --std=c++17.

Any help where to look or how the constexpr value should ve evaluated is appreciated.