From 439afd97baff457b0e6624e1fc3ae5ba8f565cce Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 16 Apr 2024 13:54:58 +0100 Subject: [PATCH] C++: Small performance optimization. --- cpp/ql/src/Critical/GlobalUseBeforeInit.ql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/ql/src/Critical/GlobalUseBeforeInit.ql b/cpp/ql/src/Critical/GlobalUseBeforeInit.ql index 6b286fbcca7..8c2641bdd5e 100644 --- a/cpp/ql/src/Critical/GlobalUseBeforeInit.ql +++ b/cpp/ql/src/Critical/GlobalUseBeforeInit.ql @@ -31,7 +31,9 @@ predicate useFunc(GlobalVariable v, Function f) { } predicate uninitialisedBefore(GlobalVariable v, Function f) { - f.hasGlobalName("main") + f.hasGlobalName("main") and + not initialisedAtDeclaration(v) and + not isStdlibVariable(v) or exists(Call call, Function g | uninitialisedBefore(v, g) and @@ -107,9 +109,7 @@ predicate isStdlibVariable(GlobalVariable v) { v.hasGlobalName(["stdin", "stdout from GlobalVariable v, Function f where uninitialisedBefore(v, f) and - useFunc(v, f) and - not initialisedAtDeclaration(v) and - not isStdlibVariable(v) + useFunc(v, f) select f, "The variable '" + v.getName() + " is used in this function but may not be initialized when it is called."