extern bool fn(); extern bool fn2(); void foo() { bool result; { auto exit = [=]{ }; result = fn() ? fn() : fn2(); } if (result) { } } gives /home/bcombee/result_test.cpp:10:9:error:uninitvar:Uninitialized variable: result /home/bcombee/result_test.cpp:7:0:style:unreadVariable:Variable 'exit' is assigned a value that is never used. however, result is defined since one of the two sides of the conditional will assign to it. Removing the "auto exit" line will result in passing code.
I saw this last night checking some of our internal code and shrunk down to this test case: #include <array> constexpr int blockLen = 10; void foo(std::array<uint8_t, blockLen * 2>& a) { a[2] = 2; } this gives the error arrayIndexOutOfBounds Array 'a[2]' accessed at index 2, which is out of bounds, because it looks like the code that computes the size of std::array doesn't handle the constexpr value correctly. However, changing that line to "#define blockLen 10" also gave the same error. This reproduces...