diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index c5e2005e3..346c5f346 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -5520,6 +5520,9 @@ static void valueFlowSubFunction(TokenList* tokenlist, ErrorLogger* errorLogger, // Don't forward lifetime values argvalues.remove_if(std::mem_fn(&ValueFlow::Value::isLifetimeValue)); + // Don't forward values, this is handled by CTU. We also had a FP #9347 + argvalues.remove_if(std::mem_fn(&ValueFlow::Value::isUninitValue)); + if (argvalues.empty()) continue; diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 6904e89d3..bcc6e212a 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -4278,7 +4278,7 @@ private: " someType_t gVar;\n" " bar(&gVar);\n" "}\n"); - ASSERT_EQUALS("[test.cpp:9] -> [test.cpp:5]: (error) Uninitialized variable: flags\n", errout.str()); + TODO_ASSERT_EQUALS("[test.cpp:9] -> [test.cpp:5]: (error) Uninitialized variable: p->flags\n", "", errout.str()); valueFlowUninit("typedef struct \n" "{\n"